<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Alfin Syahruddin's Blog RSS Feed]]></title><description><![CDATA[Personal blog by Alfin Syahruddin]]></description><link>https://blog.alfin.dev</link><generator>GatsbyJS</generator><lastBuildDate>Sun, 08 Jun 2025 09:16:19 GMT</lastBuildDate><item><title><![CDATA[Stable Diffusion pada Swift]]></title><description><![CDATA[Menjalankan model Stable Diffusion di lokal menggunakan Core ML ✨]]></description><link>https://blog.alfin.dev/articlestable-diffusion</link><guid isPermaLink="false">https://blog.alfin.dev/articlestable-diffusion</guid><pubDate>Sun, 08 Jun 2025 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang ini, sudah ada banyak aplikasi yang dapat membantu kita menghasilkan gambar dari teks. Namun, hampir semua aplikasi tersebut menjalankan prosesnya di sisi server, sehingga membutuhkan koneksi internet dan terkadang prosesnya cukup lama tergantung seberapa banyak pengguna yang mengaksesnya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dari sisi privasi dan keamanan data, kita juga tidak tahu apakah gambar yang kita buat akan disimpan di server mereka atau tidak. Di beberapa aplikasi juga terdapat batasan jumlah gambar yang dapat kita buat dan prompt yang boleh kita berikan sehingga kita tidak bisa bebas berkreasi.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada artikel kali ini kita akan belajar bagaimana cara membuat aplikasi macOS untuk menghasilkan gambar dari teks secara lokal di perangkat kita sendiri, sehingga lebih bebas, cepat dan aman.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-stable-diffusion&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-stable-diffusion&quot;&gt;Apa itu Stable Diffusion?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Stable Diffusion adalah model kecerdasan buatan yang dikembangkan oleh Stability AI untuk menghasilkan gambar dari teks (prompt). Model ini meupakan model open-source sehingga dapat kita gunakan secara gratis.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Stable Diffusion (SD) merilis beberapa versi model, mulai dari SD 1.0, SD 1.5, SD 2.1, SDXL, SDXL Turbo, dan paling baru adalah SD 3.5 yang dirilis pada bulan oktober 2024 lalu. Model SD 3.5 ini dapat menghasilkan gambar dengan kualitas yang sangat baik, merender tulisan di dalam gambar dan juga dapat memahami prompt yang lebih kompleks.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#contoh-penggunaan-stable-diffusion&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;contoh-penggunaan-stable-diffusion&quot;&gt;Contoh Penggunaan Stable Diffusion&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa contoh penggunaan Stable Diffusion untuk menghasilkan gambar dari teks:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Pembuatan Ilustrasi&lt;/strong&gt;: misalnya ilustrasi buku, poster, atau thumbnail video youtube. (bahkan thumbnail pada artikel ini pun dibuat menggunakan Stable Diffusion 😁)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Arsitektur dan Interior Desain&lt;/strong&gt;: arsitek dapat menggambarkan ide ruangan atau rumah dari deskripsi sebelum modeling 3D.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Desain Produk &amp;amp; Fashion&lt;/strong&gt;: desainer dapat merancang sepatu atau pakaian hanya dari deskripsi teks.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Konten Media Sosial dan Marketing&lt;/strong&gt;: membuat gambar menarik untuk postingan media sosial atau iklan.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#cara-kerja-stable-diffusion&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;cara-kerja-stable-diffusion&quot;&gt;Cara Kerja Stable Diffusion&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah langkah-langkah utama dalam proses pembuatan gambar dari teks yang dilakukan oleh Stable Diffusion:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-text-encoding&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-text-encoding&quot;&gt;1. Text Encoding&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Stable Diffusion dimulai dengan mengubah teks (prompt) menjadi representasi numerik menggunakan model text encoder bernama CLIP.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;CLIP mengubah teks menjadi vektor yang merepresentasikan makna dari teks tersebut. Vektor ini akan digunakan untuk memandu proses pembuatan gambar.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-random-noise&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-random-noise&quot;&gt;2. Random Noise&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah teks di-encode, proses selanjutnya adalah membuat noise acak. Noise ini adalah gambar awal yang tidak memiliki makna. Noise ini akan menjadi dasar untuk proses pembuatan gambar.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Noise ini berupa latent image yang merupakan representasi dari gambar dalam bentuk tensor. Latent image ini memiliki dimensi yang lebih kecil dibandingkan dengan gambar asli (64x64x4), sehingga proses pembuatan gambar menjadi lebih efisien.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-denoising&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-denoising&quot;&gt;3. Denoising&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dengan bantuan model U-Net, noise tadi dihilangkan secara bertahap (biasanya 20–50 langkah). Setiap langkah, model U-Net akan memperbaiki noise tersebut dengan mengacu pada vektor teks yang telah di-encode sebelumnya. Proses ini menghasilkan gambar yang semakin mendekati deskripsi teks.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-vae-decoding&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-vae-decoding&quot;&gt;4. VAE Decoding&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah proses denoising selesai, latent image yang dihasilkan masih dalam bentuk tensor. Kita perlu menggunakan Variational Autoencoder (VAE) untuk men-decode latent image tersebut menjadi gambar yang dapat dilihat manusia. VAE akan mengubah tensor tersebut menjadi gambar dengan resolusi yang lebih tinggi (512x512 piksel misalnya).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar lebih mudah dipahami, berikut adalah diagram bagaimana Stable Diffusion bekerja:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Diagram Stable Diffusion&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/stable-diffusion/diagram.jpg&quot; alt=&quot;Diagram Stable Diffusion&quot; title=&quot;Diagram Stable Diffusion&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Diagram Stable Diffusion&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#mendapatkan-model&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;mendapatkan-model&quot;&gt;Mendapatkan Model&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menjalankan Stable Diffusion di macOS, kita memerlukan model dalam format Core ML. Ada beberapa cara untuk mendapatkan model ini:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-model-core-ml-siap-pakai&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-model-core-ml-siap-pakai&quot;&gt;1. Model Core ML Siap Pakai&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Apple telah menyediakan berbagai model Stable Diffusion dalam format Core ML yang dapat langsung digunakan. Kamu dapat melihat daftar model yang tersedia di &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/apple/ml-stable-diffusion/tree/main?tab=readme-ov-file#-using-ready-made-core-ml-models-from-hugging-face-hub&quot; class=&quot;css-17g8l3v&quot;&gt;sini&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengunduhnya, silakan pilih versi model yang diinginkan, maka akan diarahkan ke website Hugging Face, kemudian pilih tab &amp;quot;Files and versions&amp;quot; dan klik icon &amp;quot;download&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Hugging Face&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/stable-diffusion/hugging-face.png&quot; alt=&quot;Hugging Face&quot; title=&quot;Hugging Face&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Hugging Face&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-mengonversi-model-ke-core-ml&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-mengonversi-model-ke-core-ml&quot;&gt;2. Mengonversi Model ke Core ML&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Meskipun Apple telah menyediakan beberapa model yang siap pakai, tidak semua versi model tersedia dalam format Core ML. Misalnya model SD 3.5 yang merupakan versi terbaru saat ini belum tersedia.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kamu ingin menggunakan model yang belum tersedia dalam format Core ML, kamu dapat mengonversi sendiri model Stable Diffusion dari format PyTorch ke Core ML menggunakan script &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;python_coreml_stable_diffusion.torch2coreml&lt;/span&gt; dari library &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/apple/ml-stable-diffusion&quot; class=&quot;css-17g8l3v&quot;&gt;ml-stable-diffusion&lt;/a&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengonversi model, kita perlu menyiapkan environment Python serta menginstall beberapa dependensi yang diperlukan. Jalankan perintah berikut di terminal:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-bash css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;git&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; clone https://github.com/apple/ml-stable-diffusion.git&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token builtin class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;cd&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; ml-stable-diffusion&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;python -m venv venv&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token builtin class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;source&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; venv/bin/activate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;pip &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;install&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; -e &lt;/span&gt;&lt;span class=&quot;token builtin class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah itu, kita dapat mengonversi model dengan perintah berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-sh css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;python -m python_coreml_stable_diffusion.torch2coreml \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    --bundle-resources-for-swift-cli \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    --model-version stabilityai/stable-diffusion-3.5-large \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    --convert-unet \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    --convert-text-encoder \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    --convert-vae-decoder \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    --convert-vae-encoder \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -o Resources&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan ganti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;stabilityai/stable-diffusion-3.5-large&lt;/span&gt; dengan versi model yang ingin dikonversi. Setelah proses konversi selesai, kamu akan mendapatkan file Core ML model di dalam folder &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Resources&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-aplikasi-macos&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-aplikasi-macos&quot;&gt;Membuat Aplikasi macOS&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang kita akan membuat aplikasi macOS sederhana yang dapat menghasilkan sebuah gambar dari teks menggunakan model Stable Diffusion yang telah kita siapkan.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-setup-project&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-setup-project&quot;&gt;1. Setup Project&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan clone project &amp;quot;iMagine&amp;quot; dan checkout ke branch &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;starter&lt;/span&gt; yang telah disediakan. Branch ini sudah berisi setup awal project macOS dengan SwiftUI sehingga kita bisa lebih fokus pada implementasi model Stable Diffusion.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-bash css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;git&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; clone https://github.com/alfinsyahruddin/iMagine.git&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token builtin class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;cd&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; iMagine&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;git&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; checkout starter&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-menambahkan-model-ke-project&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-menambahkan-model-ke-project&quot;&gt;2. Menambahkan Model ke Project&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan copy semua file model Core ML yang telah kita siapkan sebelumnya ke dalam folder &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Resources&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Resources&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/stable-diffusion/resources.png&quot; alt=&quot;Resources&quot; title=&quot;Resources&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Resources&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-instalasi-dependensi&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-instalasi-dependensi&quot;&gt;3. Instalasi Dependensi&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita perlu menambahkan library &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;StableDiffusion&lt;/span&gt; dari Apple untuk memudahkan kita dalam menggunakan model Stable Diffusion di Swift.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan klik File -&amp;gt; Add Package Dependencies, kemudian masukkan URL berikut: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/apple/ml-stable-diffusion&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/apple/ml-stable-diffusion&lt;/a&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Add Package Dependencies&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/stable-diffusion/add-package.png&quot; alt=&quot;Add Package Dependencies&quot; title=&quot;Add Package Dependencies&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Add Package Dependencies&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-generate-image&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-generate-image&quot;&gt;4. Generate Image&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka file &amp;quot;ImageGenerator.swift&amp;quot;, import &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;StableDiffusion&lt;/span&gt; dan ubah implementasi dari fungsi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;generate&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;ImageGenerator.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;generate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    prompt&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGImage&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    imageSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGSize&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;512&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;512&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    numberOfImages&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; resourcesURL &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Bundle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;forResource&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Resources&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; withExtension&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;fileURLWithPath&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; resourcesURL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; configuration &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MLModelConfiguration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    configuration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;computeUnits &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;all&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; pipeline &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;StableDiffusionPipeline&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        resourcesAt&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        controlNet&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        configuration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; configuration&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; pipeline&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;loadResources&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; pipelineConfig &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;StableDiffusionPipeline&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Configuration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;prompt&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; prompt&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    pipelineConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;startingImage &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; image&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;resize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; imageSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    pipelineConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;negativePrompt &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;blurry, low detail, low resolution, low quality, ugly, distorted&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    pipelineConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;seed &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UInt32&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;..&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UInt32&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;max&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    pipelineConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;stepCount &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    pipelineConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;originalSize &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Float32&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;imageSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    pipelineConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;targetSize &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Float32&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;imageSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    pipelineConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;imageCount &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; numberOfImages&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; pipeline&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;generateImages&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;configuration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; pipelineConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;compactMap &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token short-argument&quot;&gt;$0&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Penjelasan kode:&lt;/strong&gt;&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pertama, kita memberitahu Stable Diffusion dimana letak folder yang berisi model Core ML berada. Dalam hal ini adalah di folder &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Resources&lt;/span&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;negativePrompt&lt;/span&gt; berfungsi untuk memberi tahu model, apa yang harus dihindari saat menghasilkan gambar.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;seed&lt;/span&gt; digunakan untuk menghasilkan noise acak. Dengan seed yang sama, kita akan mendapatkan gambar yang sama setiap kali kita menjalankan proses ini.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;stepCount&lt;/span&gt; menentukan berapa banyak langkah denoising yang akan dilakukan. Semakin tinggi nilainya, semakin detail gambar yang dihasilkan, namun semakin lama juga prosesnya.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kalau kita jalankan aplikasi kita, hasilnya akan seperti ini:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;iMagine ✨&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/stable-diffusion/imagine.gif&quot; alt=&quot;iMagine ✨&quot; title=&quot;iMagine ✨&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;iMagine ✨&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang kita telah berhasil membuat aplikasi macOS yang dapat menghasilkan gambar dari teks di lokal menggunakan model Stable Diffusion. Selanjutnya kamu dapat eksplorasi lebih lanjut misalnya dengan menambahkan &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/lllyasviel/ControlNet&quot; class=&quot;css-17g8l3v&quot;&gt;ControlNet&lt;/a&gt; untuk mengubah sketsa menjadi gambar realistis atau mendownload model pada saat runtime agar ukuran aplikasi lebih kecil.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Referensi :&lt;/strong&gt;&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/apple/ml-stable-diffusion&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/apple/ml-stable-diffusion&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.polpiella.dev/stable-diffusion-swift-apps&quot; class=&quot;css-17g8l3v&quot;&gt;https://www.polpiella.dev/stable-diffusion-swift-apps&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://stable-diffusion-art.com/how-stable-diffusion-work&quot; class=&quot;css-17g8l3v&quot;&gt;https://stable-diffusion-art.com/how-stable-diffusion-work&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Android Reverse Engineering]]></title><description><![CDATA[Tutorial membongkar dan memodifikasi aplikasi Android 🤖]]></description><link>https://blog.alfin.dev/articleandroid-reverse-engineering</link><guid isPermaLink="false">https://blog.alfin.dev/articleandroid-reverse-engineering</guid><pubDate>Sat, 15 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebagai seorang Developer, kita pasti tidak ingin aplikasi yang kita buat dimodifikasi oleh orang lain (Attacker) dengan tujuan tidak baik yang bisa merugikan kita maupun pengguna dari aplikasi kita, seperti pembajakan lisensi, mendapatkan API Key, menambahkan keylogger untuk mendapatkan kredensial pengguna, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oleh karena itu, kita di sini akan belajar bagaimana Attacker bisa membongkar dan memodifikasi sebuah aplikasi Android. Karena dengan mengetahui hal tersebut, kita menjadi tahu bagaimana cara mencegah hal tersebut agar tidak terjadi.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Artikel ini ditulis hanya untuk tujuan edukasi, saya tidak bertanggung jawab atas tindakan apapun yang dilakukan atas informasi yang saya sampaikan.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-reverse-engineering&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-reverse-engineering&quot;&gt;Apa itu Reverse Engineering?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Secara umum, Reverse Engineering (RE) merupakan teknik dalam penetration testing untuk mengetahui alur jalannya program atau sistem tanpa mempunyai source code / dokumentasinya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dalam konteks aplikasi Mobile khususnya Android, kita bisa melakukan Reverse Engineering sebuah aplikasi dengan membongkar dan menganalisa file APK (Android Package Kit).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Reverse Engineering ini seperti membongkar resep dari sebuah masakan, kita akan bisa mengetahui apa saja bahan yang diperlukan, bagimana cara memasaknya, dll. Tentu tidak akan 100% akurat karena ada faktor-faktor tertentu yang mungkin tidak dapat terungkap sepenuhnya, Namun, dengan analisa yang mendalam, Reverse Engineering bisa sangat berguna untuk memahami bagaimana cara kerja suatu aplikasi.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#tujuan-re&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;tujuan-re&quot;&gt;Tujuan RE&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebenarnya tujuan Reverse Engineering itu bukan sekedar mendapatkan source code hasil dekompilasi dari sebuah aplikasi, yang lebih penting adalah setelah kita mendapatkan source code tersebut, apa yang akan kita lakukan.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa tujuan mengapa orang melakukan RE:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Penetration Testing - Jika kita mempunyai sebuah aplikasi dan kita ingin mengujinya dari sisi keamanan, kita bisa melakukan Reverse Engineering untuk mencari tahu apakah ada Key yang bocor, apakah jika aplikasi kita dimodifikasi masih bisa berjalan, dll.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Bypass Penjagaan Security - Biasanya sebuah aplikasi ada proteksi pendeteksian Root, SSL Pinning, dll. Nah, kita bisa melakukan RE untuk bypass segala proteksi tersebut.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Membajak Lisensi - Jika ada aplikasi yang berbayar, kita bisa melakukan bypass pengecekan lisensi dengan RE, sehingga kita dapat menggunakan aplikasi tersebut secara gratis.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Injeksi Malware - Dalam aplikasi modifikasi yang mungkin terlihat baik misalnya menghilangkan iklan, Attacker juga bisa menyisipkan malware untuk mencuri data login, data pribadi pengguna, dll.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#requirements&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;requirements&quot;&gt;Requirements&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengikuti tutorial ini, berikut adalah beberapa device dan software yang perlu kita siapkan:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Laptop&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;HP Android&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.android.com/studio&quot; class=&quot;css-17g8l3v&quot;&gt;Android Studio&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/skylot/jadx&quot; class=&quot;css-17g8l3v&quot;&gt;JADX&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://apktool.org&quot; class=&quot;css-17g8l3v&quot;&gt;ApkTool&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#file-apk&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;file-apk&quot;&gt;File APK&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika di iOS kita menggunakan file IPA untuk menginstall sebuah aplikasi, di Android kita dapat menginstall sebuah aplikasi menggunakan file APK (Android Package Kit).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;File APK sebenarnya hanyalah file ZIP yang berisi file-file yang digunakan untuk menjalankan sebuah aplikasi, berikut adalah isi dari sebuah file APK:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;File APK&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/android-reverse-engineering/apk-file.png&quot; alt=&quot;File APK&quot; title=&quot;File APK&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;File APK&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita ekstrak, mungkin terlihat ada banyak sekali file, tapi tenang saja, tidak semua file perlu kita analisa dalam melakukan RE, berikut adalah beberapa file yang penting untuk dilakukan analisa:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;classes.dex (Dalvik Executable): Berisi Bytecode dari Kotlin / Java yang sudah dikompilasi, nantinya kita bisa lakukan dekompilasi menjadi source code Java agar bisa dibaca oleh manusia.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Android.manifest: Berisi konfigurasi &amp;amp; metadata aplikasi, seperti permission, Activity, dll.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;lib/*.so: Berisi kode binary native yang ditulis menggunakan C/C++/Rust.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Resources Files: Pada aplikasi yang tidak aman, mungkin kita bisa mendapatkan konfigurasi atau Key yang dihardcode di dalam file resources.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#workflow-re&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;workflow-re&quot;&gt;Workflow RE&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah langkah-langkah untuk melakukan Reverse Engineering aplikasi Android menggunakan Static Analysis yang akan kita bahas satu-persatu.&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Static Analysis&lt;/strong&gt;: Menganalisis kode atau aplikasi tanpa menjalankannya.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Dynamic Analysis&lt;/strong&gt;: Menganalisis aplikasi ketika sedang dijalankan (runtime).&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Workflow RE&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/android-reverse-engineering/workflow.png&quot; alt=&quot;Workflow RE&quot; title=&quot;Workflow RE&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Workflow RE&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-mendapatkan-apk&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-mendapatkan-apk&quot;&gt;1. Mendapatkan APK&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#google-play-store&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;google-play-store&quot;&gt;Google Play Store&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mendapatkan file APK, cara pertama kita bisa download saja melalui Google Play Store, setelah itu kita bisa export APK yang sudah terinstall menggunakan aplikasi seperti ES File Explorer.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Atau kita juga bisa pull APK yang sudah terinstall langsung ke komputer kita menggunakan ADB (Android Debug Bridge). Berikut adalah command-nya:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;adb shell pm list packages | grep &amp;quot;gpt&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;adb pull /data/app/VCISw==/com.openai.chatgpt/base.apk ChatGPT.apk&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apkpure&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;apkpure&quot;&gt;ApkPure&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Cara yang kedua, kita dapat mendapatkan file APK melalui website ApkPure &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://apkpure.com/id/&quot; class=&quot;css-17g8l3v&quot;&gt;di sini&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kelebihan cara ini adalah kita bisa mendapatkan file APK tanpa perlu menginstallnya terlebih dahulu dan bisa memilih versi yang kita inginkan.&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk studi kasus pada artikel ini, kita akan melakukan Reverse Engineering untuk bypass pengecekan Serial Number agar aplikasinya menjadi PRO Version tanpa perlu membeli lisensinya. ☠️&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan download file APK-nya melalui Github di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/alfinsyahruddin/crackme-android&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/alfinsyahruddin/crackme-android&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;CrackMeAndroid&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/android-reverse-engineering/crackme-android.gif&quot; alt=&quot;CrackMeAndroid&quot; title=&quot;CrackMeAndroid&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;CrackMeAndroid&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-unpack-apk&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-unpack-apk&quot;&gt;2. Unpack APK&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah kita mendapatkan file APK, kita bisa Unpack APK-nya menggunakan ApkTool.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Proses Unpack ini akan mengubah file DEX menjadi kode smali yang bisa kita edit nantinya untuk melakukan Patching aplikasi.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan jalankan commmand berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;apktool d CrackMeAndroid.apk -o CrackMeAndroid&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Unpack APK&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/android-reverse-engineering/unpack.png&quot; alt=&quot;Unpack APK&quot; title=&quot;Unpack APK&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Unpack APK&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-decompile&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-decompile&quot;&gt;3. Decompile&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita akan melakukan dekompilasi file DEX yang terdapat pada file APK CrackMeAndroid menggunakan aplikasi JADX.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dekompilasi adalah proses untuk mengubah file DEX menjadi source code Java yang high-level, sehingga mudah untuk dibaca oleh manusia. Meskipun tidak bisa 100% mirip dengan source code aslinya, tapi ini dapat membantu kita dalam memahami bagaimana alur kerja sebuah program.&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Silakan buka aplikasi JADX&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Drag &amp;amp; Drop file APK yang ingin kita dekompilasi&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-analisa&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-analisa&quot;&gt;4. Analisa&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah proses unpack dan dekompilasi selesai dilakukan, sekarang kita sudah bisa melakukan analisa terhadap sebuah aplikasi, proses ini adalah yang paling sulit, mungkin bisa menghabiskan waktu sampai beberapa menit atau bahkan beberapa hari, kita harus benar-benar teliti agar dapat menemukan celah yang ada pada suatu aplikasi.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Apa yang perlu di-analisa sebenarnya tergantung tujuan kita masing-masing, misalnya untuk mencari apakah ada API Key yang dihardcode di dalam source code, mencari bagian kode pengecekan Root &amp;amp; SSL Pinning untuk di-bypass, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk studi kasus kali ini, tujuan kita adalah untuk mencari bagian kode untuk bypass pengecekan Serial Number, sehingga kita bisa memasukkan Serial Number apa saja akan tetap dianggap valid.&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pertama, silakan ke menu Navigation -&amp;gt; Class Search, kemudian search dengan keyword &amp;quot;Verify&amp;quot; untuk mencari class yang berhubungan dengan verifikasi serial number.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;JADX - Filter&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/android-reverse-engineering/jadx-search.png&quot; alt=&quot;JADX - Filter&quot; title=&quot;JADX - Filter&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;JADX - Filter&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;ol start=&quot;2&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Di sini, kita menemukan class bernama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;VerifySerialNumberActivity&lt;/span&gt;, kemudian kita klik, maka akan diarahkan ke kode java hasil dekompilasi terkait function tersebut.&lt;br/&gt;&lt;br/&gt;Lalu, di bagian kode dekompilasinya, terdapat &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;ViewOnClickListenerC0075a&lt;/span&gt; yang dipanggil, karena di page tersebut hanya ada 1 button, maka kita bisa simpulkan bahwa event on-click tersebut lah yang berfungsi untuk melakukan pengecekan serial number.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;JADX&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/android-reverse-engineering/jadx-onclick.png&quot; alt=&quot;JADX&quot; title=&quot;JADX&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;JADX&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;ol start=&quot;3&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Di dalam class &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;ViewOnClickListenerC0075a&lt;/span&gt;, kita melihat method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;m692a&lt;/span&gt; yang digunakan untuk membandingkan 2 variabel, bisa jadi inilah bagian kode untuk pengecekannya! 👀&lt;br/&gt;&lt;br/&gt;Jadi, idenya adalah kita akan melakukan patching kondisi perbandingan 2 variabel ini agar hasilnya selalu true.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;JADX&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/android-reverse-engineering/jadx-compare.png&quot; alt=&quot;JADX&quot; title=&quot;JADX&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;JADX&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;ol start=&quot;4&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Untuk melihat kode smali yang berhubungan dengan logic tersebut, kita bisa centang &amp;quot;Split View&amp;quot; yang ada di bagian bawah, kemudian pilih tab &amp;quot;Smali&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;JADX - Smali&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/android-reverse-engineering/jadx-smali.png&quot; alt=&quot;JADX - Smali&quot; title=&quot;JADX - Smali&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;JADX - Smali&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#5-patching&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;5-patching&quot;&gt;5. Patching&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah kita tahu apa yang mau dipatch, kita bisa buka folder hasil Unpack oleh ApkTool tadi menggunakan Text Editor karena kita tidak bisa mengedit file secara langsung di JADX.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk melakukan patching, kita hanya bisa mengedit kode smali-nya, hasil dekompilasi Java yang ada di JADX hanyalah preview saja untuk membantu kita dalam membaca alur sebuah program.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;ApkTool - Before&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/android-reverse-engineering/apktool-before.png&quot; alt=&quot;ApkTool - Before&quot; title=&quot;ApkTool - Before&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;ApkTool - Before&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di bagian kode smali, kita melihat instruksi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;if-eqz&lt;/span&gt; (Equal to Zero) yang digunakan untuk melakukan mengecek register &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;v0&lt;/span&gt;, jika hasilnya 0 (false), maka instruksi selanjutnya tidak akan dieksekusi dan akan berpindah ke block &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;:cond-1&lt;/span&gt;. dan kalau kita cek isi dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;:cond-1&lt;/span&gt; adalah untuk menampilkan alert &amp;quot;Invalid Serial Number&amp;quot;. Sehingga kita perlu set agar register &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;v0&lt;/span&gt; selalu 1 (true).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dalam konteks kode Smali / Assembly, register adalah tempat untuk menyimpan nilai seperti angka, objek, atau tipe data lainnya. register biasanya diberi nama seperti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;v0&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;v1&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;v2&lt;/span&gt;, dan seterusnya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, silakan tambahkan code berikut di sebelum instruksi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;if-eqz&lt;/span&gt; untuk menimpa isi dari register &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;v0&lt;/span&gt; menjadi 1 (true):&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;ApkTool - After&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/android-reverse-engineering/apktool-after.png&quot; alt=&quot;ApkTool - After&quot; title=&quot;ApkTool - After&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;ApkTool - After&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah itu, simpan filenya.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#6-repacking-apk&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;6-repacking-apk&quot;&gt;6. Repacking APK&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-repacking&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;1-repacking&quot;&gt;1. Repacking&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk me-repack APK, jalankan command berikut di Terminal:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;apktool b CrackMeAndroid -o modified.apk&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-re-signing&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;2-re-signing&quot;&gt;2. Re-Signing&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar aplikasi yang telah kita modifikasi dapat diinstall di Android, kita perlu melakukan Signing ulang.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tool yang akan kita pakai adalah &amp;quot;uber-apk-signer&amp;quot;, silakan download dulu di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/patrickfav/uber-apk-signer&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/patrickfav/uber-apk-signer&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika sudah, jalankan command berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;java -jar signer.jar --apk modified.apk&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Command di atas akan menghasilkan file APK baru yang telah di-signing ulang bernama &amp;quot;modified-aligned-debugSigned.apk&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-install&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;3-install&quot;&gt;3. Install&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terakhir, kita tinggal install APK yang telah kita modifikasi ke HP Android menggunakan command berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;adb install -r modified-aligned-debugSigned.apk&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, ketika kita memasukkan Serial Number random pun akan dianggap valid dan aplikasi kita menjadi PRO Version 🎉&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;CrackMeAndroid - Patched&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/android-reverse-engineering/patched.gif&quot; alt=&quot;CrackMeAndroid - Patched&quot; title=&quot;CrackMeAndroid - Patched&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;CrackMeAndroid - Patched&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#proteksi-aplikasi&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;proteksi-aplikasi&quot;&gt;Proteksi Aplikasi&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Proteksi aplikasi Android agar tidak bisa di-reverse engineer sepenuhnya tidak mungkin dilakukan, karena teknik Reverse Engineering terus berkembang. Namun, ada beberapa cara yang dapat meningkatkan kesulitan bagi siapa saja yang mencoba melakukan RE aplikasi Android kita.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-obfuscation&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-obfuscation&quot;&gt;1. Obfuscation&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Obfuscation adalah proses menyamarkan kode sumber aplikasi agar sulit dipahami oleh orang lain. Misalnya, nama variabel, fungsi, dan kelas bisa diubah menjadi nama yang tidak bermakna dan acak.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tools: Licel DexProtector, ProGuard&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-app-integrity-checks&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-app-integrity-checks&quot;&gt;2. App Integrity Checks&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita bisa melakukan integrity check dalam aplikasi pada saat runtime untuk mendeteksi jika ada modifikasi pada binary aplikasi, misalnya dengan memeriksa checksum dari binary atau file tertentu, atau bisa juga menggunakan Play Integrity API.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tools: Play Integrity, Firebase AppCheck&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-anti-dynamic-instrumentation&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-anti-dynamic-instrumentation&quot;&gt;3. Anti Dynamic Instrumentation&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika aplikasi kita di-reverse engineer menggunakan Dynamic Analysis seperti Frida, Objection atau Debugger, kita bisa tambahkan pengecekan juga agar aplikasi kita tidak bisa dimodifikasi behaviornya pada saat runtime. Misalnya kita cek apakah ada process &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;frida-server&lt;/span&gt; yang berjalan, mendeteksi apakah ada debugger yang berjalan menggunakan library &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;AntiDebugandMemoryDump&lt;/span&gt;, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tools: DetectFrida, AntiDebugandMemoryDump&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#whats-next&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;whats-next&quot;&gt;What&amp;#x27;s Next?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah kita tahu bagaimana cara membongkar dan memodifikasi aplikasi Android, serta bagaimana cara proteksinya agar hal tersebut sulit dilakukan, mungkin selanjutnya kamu bisa membaca lebih detail mengenai best practice penerapan keamanan pada aplikasi Mobile dari &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://mas.owasp.org/&quot; class=&quot;css-17g8l3v&quot;&gt;OWASP&lt;/a&gt; (Open Web Application Security Project), khususnya &lt;strong&gt;MASVS&lt;/strong&gt; (Mobile Application Security Verification Standard) dan &lt;strong&gt;MASTG&lt;/strong&gt; (Mobile Application Security Testing Guide). Kedua pedoman ini memberikan panduan yang sangat berguna untuk memastikan aplikasi Mobile kita aman dari berbagai serangan.&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[iOS Reverse Engineering]]></title><description><![CDATA[Tutorial membongkar dan memodifikasi aplikasi iOS 🍎]]></description><link>https://blog.alfin.dev/articleios-reverse-engineering</link><guid isPermaLink="false">https://blog.alfin.dev/articleios-reverse-engineering</guid><pubDate>Sat, 15 Mar 2025 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebagai seorang Developer, kita pasti tidak ingin aplikasi yang kita buat dimodifikasi oleh orang lain (Attacker) dengan tujuan tidak baik yang bisa merugikan kita maupun pengguna dari aplikasi kita, seperti pembajakan lisensi, mendapatkan API Key, menambahkan keylogger untuk mendapatkan kredensial pengguna, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oleh karena itu, kita di sini akan belajar bagaimana Attacker bisa membongkar dan memodifikasi sebuah aplikasi iOS. Karena dengan mengetahui hal tersebut, kita menjadi tahu bagaimana cara mencegah hal tersebut agar tidak terjadi.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Artikel ini ditulis hanya untuk tujuan edukasi, saya tidak bertanggung jawab atas tindakan apapun yang dilakukan atas informasi yang saya sampaikan.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-reverse-engineering&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-reverse-engineering&quot;&gt;Apa itu Reverse Engineering?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Secara umum, Reverse Engineering (RE) merupakan teknik dalam penetration testing untuk mengetahui alur jalannya program atau sistem tanpa mempunyai source code / dokumentasinya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dalam konteks aplikasi Mobile khususnya iOS, kita bisa melakukan Reverse Engineering sebuah aplikasi dengan membongkar dan menganalisa file IPA (iOS AppStore Package).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Reverse Engineering ini seperti membongkar resep dari sebuah masakan, kita akan bisa mengetahui apa saja bahan yang diperlukan, bagimana cara memasaknya, dll. Tentu tidak akan 100% akurat karena ada faktor-faktor tertentu yang mungkin tidak dapat terungkap sepenuhnya, Namun, dengan analisa yang mendalam, Reverse Engineering bisa sangat berguna untuk memahami bagaimana cara kerja suatu aplikasi.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#tujuan-re&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;tujuan-re&quot;&gt;Tujuan RE&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebenarnya tujuan Reverse Engineering itu bukan sekedar mendapatkan source code hasil dekompilasi dari sebuah aplikasi, yang lebih penting adalah setelah kita mendapatkan source code tersebut, apa yang akan kita lakukan.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa tujuan mengapa orang melakukan RE:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Penetration Testing - Jika kita mempunyai sebuah aplikasi dan kita ingin mengujinya dari sisi keamanan, kita bisa melakukan Reverse Engineering untuk mencari tahu apakah ada Key yang bocor, apakah jika aplikasi kita dimodifikasi masih bisa berjalan, dll.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Bypass Penjagaan Security - Biasanya sebuah aplikasi ada proteksi pendeteksian Jailbreak, SSL Pinning, dll. Nah, kita bisa melakukan RE untuk bypass segala proteksi tersebut.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Membajak Lisensi - Jika ada aplikasi yang berbayar, kita bisa melakukan bypass pengecekan lisensi dengan RE, sehingga kita dapat menggunakan aplikasi tersebut secara gratis.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Injeksi Malware - Dalam aplikasi modifikasi yang mungkin terlihat baik misalnya menghilangkan iklan, Attacker juga bisa menyisipkan malware untuk mencuri data login, data pribadi pengguna, dll.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#requirements&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;requirements&quot;&gt;Requirements&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengikuti tutorial ini, berikut adalah beberapa device dan software yang perlu kita siapkan:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Macbook&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;iPhone yang sudah dijailbreak (Opsional)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.apple.com/xcode/&quot; class=&quot;css-17g8l3v&quot;&gt;Xcode&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://ghidra-sre.org/&quot; class=&quot;css-17g8l3v&quot;&gt;Ghidra&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://sideloadly.io/&quot; class=&quot;css-17g8l3v&quot;&gt;Sideloadly&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#file-ipa&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;file-ipa&quot;&gt;File IPA&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika di Android kita menggunakan file APK untuk menginstall sebuah aplikasi, di IOS kita dapat menginstall sebuah aplikasi menggunakan file IPA (iOS AppStore Package).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;File IPA sebenarnya hanyalah file ZIP yang berisi file-file yang digunakan untuk menjalankan sebuah aplikasi, berikut adalah isi dari sebuah file IPA:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;File IPA&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/ipa-file.png&quot; alt=&quot;File IPA&quot; title=&quot;File IPA&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;File IPA&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita ekstrak, mungkin terlihat ada banyak sekali file, tapi tenang saja, tidak semua file perlu kita analisa dalam melakukan RE, berikut adalah beberapa file yang penting untuk dilakukan analisa:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;File Binary (Mach-O): Berisi binary dari Swift / Objective-C yang sudah dikompilasi, nantinya kita bisa lakukan dekompilasi menjadi source code agar bisa dibaca oleh manusia.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Info.plist: Berisi konfigurasi &amp;amp; metadata aplikasi, seperti permission, Base URL API, AID NFC, dll.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Frameworks: Dapat kita analisis untuk memahami dependensi aplikasi dan mengidentifikasi potensi kerentanannya.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Resources Files: Pada aplikasi yang tidak aman, mungkin kita bisa mendapatkan konfigurasi di dalam file resources.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#workflow-re&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;workflow-re&quot;&gt;Workflow RE&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah langkah-langkah untuk melakukan Reverse Engineering aplikasi iOS menggunakan Static Analysis yang akan kita bahas satu-persatu.&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Static Analysis&lt;/strong&gt;: Menganalisis kode atau aplikasi tanpa menjalankannya.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Dynamic Analysis&lt;/strong&gt;: Menganalisis aplikasi saat sedang dijalankan (runtime).&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Workflow RE&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/workflow.png&quot; alt=&quot;Workflow RE&quot; title=&quot;Workflow RE&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Workflow RE&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-mendapatkan-ipa&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-mendapatkan-ipa&quot;&gt;1. Mendapatkan IPA&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#appstore&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;appstore&quot;&gt;AppStore&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mendapatkan file IPA, cara pertama kita bisa download saja melalui AppStore, namun perlu diketahui bahwa setiap aplikasi yang diinstall dari AppStore akan dienkripsi oleh Apple (Melalui DRM Fair Play) dan hanya bisa diinstall oleh akun tertentu saja.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita ingin melakukan Reverse Engineering aplikasi yang diinstall di AppStore dan ingin agar hasil patchingnya bisa diinstall oleh orang lain, maka kita perlu men-decrypt file IPA nya, yang akan kita bahas lebih detail di step ke-2.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#iosgods&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;iosgods&quot;&gt;iOSGods&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Cara yang kedua, kita dapat mendapatkan file IPA yang sudah ter-decrypt melalui website iOSGods &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://armconverter.com/decryptedappstore/us&quot; class=&quot;css-17g8l3v&quot;&gt;di sini&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun, website ini berbayar jika kita ingin mengakses fitur-fitur VIP seperti decrypt IPA tanpa limit, melihat histori versi, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#github&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;github&quot;&gt;Github&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ada beberapa aplikasi yang didistribusikan di Github melalui file IPA, meskipun jumlahnya tidak sebanyak yang ada di AppStore.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk studi kasus pada artikel ini, kita akan melakukan Reverse Engineering untuk bypass pengecekan Serial Number agar aplikasinya menjadi PRO Version tanpa perlu membeli lisensinya. ☠️&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan download file IPA-nya melalui Github di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/alfinsyahruddin/crackme-ios&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/alfinsyahruddin/crackme-ios&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;CrackMeIOS&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/crackme-ios.gif&quot; alt=&quot;CrackMeIOS&quot; title=&quot;CrackMeIOS&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;CrackMeIOS&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-decrypt-ipa&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-decrypt-ipa&quot;&gt;2. Decrypt IPA&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk men-decrypt file IPA dari aplikasi yang didownload dari AppStore, kita bisa menggunakan tool bernama &amp;quot;frida-ios-dump&amp;quot;, sebenarnya bukan tool ini yang men-decrypt file IPA nya, tool ini hanya mengambil IPA yang sudah ter-decrypt di Memory pada saat aplikasinya sedang berjalan.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menggunakan tool ini, kita memerlukan iPhone yang sudah di-Jailbreak.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah langkah-langkahnya:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Install &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://frida.re&quot; class=&quot;css-17g8l3v&quot;&gt;Frida&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Jalankan command di Terminal: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;git clone https://github.com/AloneMonkey/frida-ios-dump&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Masuk ke folder &amp;quot;frida-ios-dump&amp;quot; dan jalankan lagi: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;sudo pip install -r requirements.txt --upgrade&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Jalankan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;iproxy 2222 22&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Terakhir, dump file IPA dari memory: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;python3 dump.py -u root -p root -o CrackMeIOS.ipa CrackMeIOS&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Note: Silakan sesuaikan nama aplikasi dan kredensial untuk mengakses shell ke iPhone kita.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-unpack-ipa&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-unpack-ipa&quot;&gt;3. Unpack IPA&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah kita mendapatkan file IPA yang telah ter-decrypt, kita bisa unpack IPA-nya, karena file IPA sebenarnya adalah file ZIP biasa, jadi silakan rename saja extensionnya menjadi .zip kemudian klik 2x untuk mengekstrak filenya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Unpack IPA&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/unpack.png&quot; alt=&quot;Unpack IPA&quot; title=&quot;Unpack IPA&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Unpack IPA&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-decompile&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-decompile&quot;&gt;4. Decompile&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita akan melakukan disassembly dan dekompilasi file binary yang terdapat pada file IPA CrackMeIOS menggunakan aplikasi Ghidra.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Disassembly adalah proses untuk mengubah file binary menjadi bahasa assembly, di iOS bahasa assembly-nya menggunakan arsitektur ARM64. Jika kamu ingin melakukan patching sebuah aplikasi iOS, pengetahuan tentang dasar bahasa assembly ARM akan sangat membantu, kamu bisa mulai belajar dari sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://azeria-labs.com/writing-arm-assembly-part-1/&quot; class=&quot;css-17g8l3v&quot;&gt;https://azeria-labs.com/writing-arm-assembly-part-1/&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sedangkan Dekompilasi adalah proses untuk mengubah file binary menjadi source code bahasa pemrograman yang high-level, sehingga mudah untuk dibaca oleh manusia dibandingkan membaca langsung bahasa assembly-nya. Meskipun tidak bisa 100% mirip dengan source code aslinya, tapi ini dapat membantu kita dalam memahami bagaimana alur kerja sebuah program.&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Silakan buka aplikasi Ghidra dan buat Project baru&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Drag &amp;amp; Drop file binary yang ada di dalam folder Payload -&amp;gt; CrackMeIOS (Show Package Contents) -&amp;gt; CrackMeIOS&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Click 2x file binary nya di aplikasi Ghidra&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Centang &amp;quot;Decompiler Parameter ID&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Klik button Analyze&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Ghidra&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/ghidra-analyze.png&quot; alt=&quot;Ghidra&quot; title=&quot;Ghidra&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Ghidra&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#5-analisa&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;5-analisa&quot;&gt;5. Analisa&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah proses unpack, disassembly dan dekompilasi selesai dilakukan, sekarang kita sudah bisa melakukan analisa terhadap sebuah aplikasi, proses ini adalah yang paling sulit, mungkin bisa menghabiskan waktu sampai beberapa menit atau bahkan beberapa hari, kita harus benar-benar teliti agar dapat menemukan celah yang ada pada suatu aplikasi.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Apa yang perlu di-analisa sebenarnya tergantung tujuan kita masing-masing, misalnya untuk mencari apakah ada API Key yang dihardcode di dalam binary / Info.plist, mencari bagian kode pengecekan Jailbreak &amp;amp; SSL Pinning untuk di-bypass, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk studi kasus kali ini, tujuan kita adalah untuk mencari bagian kode untuk bypass pengecekan Serial Number, sehingga kita bisa memasukkan Serial Number apa saja akan tetap dianggap valid.&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pertama, silakan ke menu Symbol Tree di sebelah kiri, kemudian filter dengan keyword &amp;quot;Verify&amp;quot; untuk mencari function yang berhubungan dengan verifikasi serial number.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Ghidra - Filter&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/ghidra-filter.png&quot; alt=&quot;Ghidra - Filter&quot; title=&quot;Ghidra - Filter&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Ghidra - Filter&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;ol start=&quot;2&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Di sini, kita menemukan function bernama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;didTapVerifyButton&lt;/span&gt;, kemudian kita klik, maka view-nya akan diarahkan ke kode assembly (tengah) &amp;amp; hasil dekompilasi (kanan) terkait function tersebut.&lt;br/&gt;&lt;br/&gt;Lalu, di bagian kode dekompilasinya, terdapat 2 function yang dipanggil, silakan masuk ke dalam function yang ada di baris ke-14 (&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;FUN_100004364&lt;/span&gt;) karena setelah dilihat implementasinya, function tersebut lah yang berfungsi untuk melakukan pengecekan serial number.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Ghidra&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/ghidra-verify.png&quot; alt=&quot;Ghidra&quot; title=&quot;Ghidra&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Ghidra&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;ol start=&quot;3&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Di dalam function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;FUN_100004364&lt;/span&gt;, kita melihat operator perbandingan 2 variabel, bisa jadi inilah bagian kode untuk pengecekannya! 👀&lt;br/&gt;&lt;br/&gt;Jadi, idenya adalah kita akan melakukan patching kondisi perbandingan 2 variabel ini agar hasilnya selalu true.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Ghidra&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/ghidra-compare.png&quot; alt=&quot;Ghidra&quot; title=&quot;Ghidra&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Ghidra&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#6-patching&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;6-patching&quot;&gt;6. Patching&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah kita tahu apa yang mau dipatch, kita bisa klik kondisi perbandingan tersebut, maka akan diarahkan ke kode assembly-nya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk melakukan patching, kita hanya bisa mengedit kode assembly-nya, hasil dekompilasi yang di sebelah kanan hanyalah preview saja untuk membantu kita dalam membaca alur sebuah program.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Ghidra - Before&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/ghidra-cmp.png&quot; alt=&quot;Ghidra - Before&quot; title=&quot;Ghidra - Before&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Ghidra - Before&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di bagian kode assembly, kita melihat 2 instruksi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;cmp&lt;/span&gt; (Compare) &amp;amp; &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;bne&lt;/span&gt; (Branch if Not Equal)yang digunakan untuk melakukan operasi perbandingan, jika hasilnya tidak sama, maka instruksi selanjutnya tidak akan dieksekusi dan akan berpindah ke block &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;LAB_100004440&lt;/span&gt;. dan kalau kita cek isi dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;LAB_100004440&lt;/span&gt; adalah untuk menampilkan alert &amp;quot;Invalid Serial Number&amp;quot;. Sehingga kita perlu set agar hasil perbandingannya selalu sama.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, silakan arahkan cursor ke instruksi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;cmp&lt;/span&gt;, kemudian klik kanan -&amp;gt; Patch Instruction -&amp;gt; Ubah kedua valuenya agar menjadi sama.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Ghidra - After&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/ghidra-cmp-2.png&quot; alt=&quot;Ghidra - After&quot; title=&quot;Ghidra - After&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Ghidra - After&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah itu, klik menu File -&amp;gt; Export Program -&amp;gt; Format: Original File -&amp;gt; Output: replace file binary yang ada di folder Payload -&amp;gt; OK.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Ghidra - Export&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/ghidra-export.png&quot; alt=&quot;Ghidra - Export&quot; title=&quot;Ghidra - Export&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Ghidra - Export&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#7-repacking-ipa&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;7-repacking-ipa&quot;&gt;7. Repacking IPA&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Karena file IPA sebenarnya adalah file ZIP biasa, silakan compress folder Payload dengan nama &amp;quot;modified.ipa&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika sudah, silakan buka aplikasi Sideloadly untuk menginstall aplikasi ke device kita dari file IPA.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Drag &amp;amp; Drop file IPA nya, pilih Apple ID, dan klik button Start.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Sideloadly&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/sideloadly.png&quot; alt=&quot;Sideloadly&quot; title=&quot;Sideloadly&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Sideloadly&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, ketika kita memasukkan Serial Number random pun akan dianggap valid dan aplikasi kita menjadi PRO Version 🎉&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;CrackMeIOS - Patched&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ios-reverse-engineering/patched.gif&quot; alt=&quot;CrackMeIOS - Patched&quot; title=&quot;CrackMeIOS - Patched&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;CrackMeIOS - Patched&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#proteksi-aplikasi&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;proteksi-aplikasi&quot;&gt;Proteksi Aplikasi&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Proteksi aplikasi iOS agar tidak bisa di-reverse engineer sepenuhnya tidak mungkin dilakukan, karena teknik Reverse Engineering terus berkembang. Namun, ada beberapa cara yang dapat meningkatkan kesulitan bagi siapa saja yang mencoba melakukan RE aplikasi iOS kita.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-obfuscation&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-obfuscation&quot;&gt;1. Obfuscation&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Obfuscation adalah proses menyamarkan kode sumber aplikasi agar sulit dipahami oleh orang lain. Misalnya, nama variabel, fungsi, dan kelas bisa diubah menjadi nama yang tidak bermakna dan acak.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tools: Licel DexProtector, SwiftShield&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-app-integrity-checks&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-app-integrity-checks&quot;&gt;2. App Integrity Checks&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita bisa melakukan integrity check dalam aplikasi pada saat runtime untuk mendeteksi jika ada modifikasi pada binary aplikasi, misalnya dengan memeriksa checksum dari binary atau file tertentu, atau bisa juga menggunakan service App Attest bawaan Apple.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tools: App Attest, Firebase AppCheck&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-anti-dynamic-instrumentation&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-anti-dynamic-instrumentation&quot;&gt;3. Anti Dynamic Instrumentation&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika aplikasi kita di-reverse engineer menggunakan Dynamic Analysis seperti Frida, Objection atau LLDB, kita bisa tambahkan pengecekan juga agar aplikasi kita tidak bisa dimodifikasi behaviornya pada saat runtime. Misalnya kita cek apakah ada process &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;frida-server&lt;/span&gt; yang berjalan, mendeteksi apakah ada debugger yang berjalan menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;ptrace&lt;/span&gt;, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tools: IOSSecuritySuite&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#whats-next&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;whats-next&quot;&gt;What&amp;#x27;s Next?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah kita tahu bagaimana cara membongkar dan memodifikasi aplikasi iOS, serta bagaimana cara proteksinya agar hal tersebut sulit dilakukan, mungkin selanjutnya kamu bisa membaca lebih detail mengenai best practice penerapan keamanan pada aplikasi Mobile dari &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://mas.owasp.org/&quot; class=&quot;css-17g8l3v&quot;&gt;OWASP&lt;/a&gt; (Open Web Application Security Project), khususnya &lt;strong&gt;MASVS&lt;/strong&gt; (Mobile Application Security Verification Standard) dan &lt;strong&gt;MASTG&lt;/strong&gt; (Mobile Application Security Testing Guide). Kedua pedoman ini memberikan panduan yang sangat berguna untuk memastikan aplikasi Mobile kita aman dari berbagai serangan.&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Swift Ownership & Borrowing]]></title><description><![CDATA[Cara baru untuk mengelola memori di Swift 🕊️]]></description><link>https://blog.alfin.dev/articleswift-ownership-dan-borrowing</link><guid isPermaLink="false">https://blog.alfin.dev/articleswift-ownership-dan-borrowing</guid><pubDate>Sat, 07 Dec 2024 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Seperti yang telah kita ketahui, Swift mempunyai 2 tipe data yaitu &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Reference Type&lt;/span&gt; dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Value Type&lt;/span&gt;. &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Reference Type&lt;/span&gt; adalah tipe data yang disimpan di heap memory yang dikelola oleh Swift menggunakan ARC (Automatic Reference Counting).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sedangkan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Value Type&lt;/span&gt; adalah tipe data yang disimpan di stack memory dan jika dilakukan assignment ke variable lain atau dipassing ke sebuah function maka akan selalu dicopy valuenya.&lt;/p&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebelumnya saya pernah menulis artikel tentang Automatic Reference Counting (ARC) pada Swift, kalian bisa membacanya di &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://blog.alfin.dev/article/memory-management-pada-swift&quot; class=&quot;css-17g8l3v&quot;&gt;sini&lt;/a&gt;.&lt;/p&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Problemnya adalah ketika kita mempunyai sebuah variable dengan tipe data &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Value Type&lt;/span&gt; seperti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;struct&lt;/span&gt; yang berukuran sangat besar, maka ketika kita melakukan assignment atau passing ke sebuah function maka valuenya akan selalu dicopy, yang berarti akan memakan waktu dan memori yang cukup besar juga.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke, kalau gitu kenapa tidak menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Reference Type&lt;/span&gt; saja seperti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;class&lt;/span&gt;? Sebenarnya bisa saja, namun jika kita ingin performa yang lebih baik, cara ini tidak direkomendasikan karena tipe data &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;class&lt;/span&gt; akan disimpan di heap memory yang dikelola oleh ARC, yang berarti ada proses retain release, kemudian kita harus memikirkan tentang retain cycle yang bisa menyebabkan memory leaks, dan juga menurut benchmark yang dilakukan oleh &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;Infinum&quot; class=&quot;css-17g8l3v&quot;&gt;Infinum&lt;/a&gt; ternyata ARC mempunyai dampak pada performa yang cukup signifikan.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;ARC Performance&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/swift-ownership-dan-borrowing/retain.png&quot; alt=&quot;ARC Performance&quot; title=&quot;ARC Performance&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;ARC Performance&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengatasi masalah tersebut, Swift 5.9 memperkenalkan konsep Ownership.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-ownership&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-ownership&quot;&gt;Apa itu Ownership?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ownership adalah konsep dan aturan yang digunakan untuk mengelola memori di Swift secara efisien dan aman, dimana sebuah variabel hanya bisa dimiliki oleh satu owner saja, dan owner tersebut bertanggung jawab untuk menghapus variabel dari memori ketika variabel tersebut sudah tidak diperlukan lagi.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Konsep Ownership ini mirip dengan konsep Ownership di Rust, dimana setiap variabel hanya bisa dimiliki oleh satu owner saja, dan ketika variabel tersebut dipassing ke variabel lain misalnya, maka ownership dari variabel tersebut akan dipindahkan ke variabel lain tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Seperti di Rust, kita juga bisa melakukan Borrowing, dimana kita bisa meminjam value dari suatu variabel tanpa harus ada perpindahan ownership.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Perbedaan dengan sistem Ownership di Rust adalah sistem Ownership di Swift ini bersifat &lt;strong&gt;opsional&lt;/strong&gt;, jadi kita bisa gunakan di bagian kode yang membutuhkan performa tinggi saja.&lt;/p&gt;&lt;style data-emotion=&quot;css u8209z&quot;&gt;.css-u8209z{padding-left:48px;padding-right:48px;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-u8209z&quot;&gt;&lt;style data-emotion=&quot;css z77zqz&quot;&gt;.css-z77zqz{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:500;font-size:1.25rem;line-height:1.6;color:rgba(0,0,0,0.5);font-size:16px;text-indent:-0.45em;}.css-z77zqz::before{content:open-quote;}.css-z77zqz::after{content:close-quote;}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-z77zqz&quot;&gt;It is the core team&amp;#x27;s expectation that ownership can be delivered as an opt-in enhancement to Swift. Programmers should be able to largely ignore ownership and not suffer for it. If this expectation proves to not be satisfiable, we will reject ownership rather than imposing substantial burdens on regular programs.&lt;/h6&gt;&lt;style data-emotion=&quot;css 18k19ow&quot;&gt;.css-18k19ow{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.75;color:rgba(0,0,0,0.25);}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-subtitle1 css-18k19ow&quot;&gt;Swift Ownership Manifesto&lt;/h6&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#copyable&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;copyable&quot;&gt;~Copyable&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Hal pertama yang perlu kita lakukan untuk menggunakan sistem Ownership adalah dengan menambahkan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;~Copyable&lt;/span&gt; pada Struct atau Enum kita.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Secara default, Struct &amp;amp; Enum di Swift adalah &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Copyable&lt;/span&gt;, yang berarti ketika kita melakukan assignment atau passing ke sebuah function, maka valuenya akan selalu dicopy. Namun, kita bisa mengubahnya menjadi Non-Copyable dengan cara menambahkan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;~Copyable&lt;/span&gt; pada Struct atau Enum kita.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Contohnya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Copyable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; price&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; book &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;price&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;100_000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; book2 &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; book&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;book2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;price&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// ✅ OK&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;price&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// ❌ Compilation Error: &amp;#x27;book&amp;#x27; used after consume&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada contoh di atas, kita membuat Non-Copyable struct &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Book&lt;/span&gt; dan kita melakukan assignment &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;let book2 = book&lt;/span&gt;, ownership dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;book&lt;/span&gt; akan dipindahkan ke &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;book2&lt;/span&gt;, sehingga ketika kita mencoba mengakses &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;book.price&lt;/span&gt; maka akan terjadi error pada saat dicompile.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#limitasi&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;limitasi&quot;&gt;Limitasi&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa limitasi dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;~Copyable&lt;/span&gt; untuk saat ini:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Hanya bisa digunakan pada Struct &amp;amp; Enum&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Struct &amp;amp; Enum yang menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;~Copyable&lt;/span&gt;, properti2-nya juga harus &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;~Copyable&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Belum mendukung Generic&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#borrowing&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;borrowing&quot;&gt;Borrowing&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita tidak ingin memindahkan ownership dari suatu variabel pada saat passing variabel tersebut ke suatu function, maka kita bisa melakukan Borrowing. Borrowing adalah proses meminjam value dari suatu variabel tanpa memindahkan ownership dari variabel tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh penggunaan Borrowing:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Copyable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; price&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    borrowing &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Reading book...&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;describeBook&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; borrowing &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Price: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;book&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;price&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika functionnya berada di luar &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;struct&lt;/span&gt; maka kita perlu menambahkan keyword &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;borrowing&lt;/span&gt; pada parameter functionnya. &lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tapi jika functionnya di dalam &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;struct&lt;/span&gt; maka kita perlu menambahkan keyword &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;borrowing&lt;/span&gt; pada awal deklarasi functionnya dan secara default sebenarnya tipenya adalah &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;borrowing&lt;/span&gt;, jadi kita bisa hapus keyword &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;borrowing&lt;/span&gt; nya.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Copyable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; price&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Reading book...&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#inout&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;inout&quot;&gt;Inout&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Seperti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;borrowing&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;inout&lt;/span&gt; juga digunakan untuk meminjam value dari suatu variabel, namun &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;inout&lt;/span&gt; dapat digunakan jika kita ingin mengubah value dari variabel tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh penggunaan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;inout&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;modifyPrice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;inout&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;price &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;999&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;modifyPrice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada kode di atas, kita membuat function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;modifyPrice&lt;/span&gt; yang menerima parameter &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;inout Book&lt;/span&gt;, dan kita memanggil function tersebut dengan menambahkan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;&amp;amp;&lt;/span&gt; sebelum variabel &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;book&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#consuming&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;consuming&quot;&gt;Consuming&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita ingin memindahkan ownership dari suatu variabel pada saat passing variabel ke suatu function, maka kita bisa melakukan Consuming. Dan apabila sudah mencapai akhir dari scope function tersebut, maka variabel tersebut akan dihapus dari memori.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh penggunaan Consuming:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Copyable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; price&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    consuming &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Deleting book from the database...&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada kode di atas, kita menambahkan keyword &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;consuming&lt;/span&gt; pada function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;delete()&lt;/span&gt;, sehingga ketika kita memanggil function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;delete()&lt;/span&gt; 2x maka akan terjadi error pada saat dicompile.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; book &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;price&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;100_000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// ✅ OK&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// ❌ Compilation Error: &amp;#x27;book&amp;#x27; consumed more than once&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#discard&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;discard&quot;&gt;Discard&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terakhir, ada keyword &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;discard&lt;/span&gt; yang digunakan untuk mencegah &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;deinit&lt;/span&gt; dipanggil pada saat variabel tersebut dihapus dari memori.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh penggunaan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;discard&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Book&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;~&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Copyable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; price&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    consuming &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;delete&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Deleting book from the database...&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        discard &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;deinit&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Deleting book from the database...&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada kode di atas, kita menambahkan keyword &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;discard self&lt;/span&gt; pada function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;delete()&lt;/span&gt;, sehingga ketika kita memanggil function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;delete()&lt;/span&gt; maka &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;deinit&lt;/span&gt; tidak akan dipanggil.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#performance-benchmark&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;performance-benchmark&quot;&gt;Performance Benchmark&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;Infinum&quot; class=&quot;css-17g8l3v&quot;&gt;Infinum&lt;/a&gt; telah melakukan benchmark terhadap sistem Ownership di Swift, berikut adalah hasilnya:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Borrowing&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/swift-ownership-dan-borrowing/borrowing.png&quot; alt=&quot;Borrowing&quot; title=&quot;Borrowing&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Borrowing&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Consuming&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/swift-ownership-dan-borrowing/consuming.png&quot; alt=&quot;Consuming&quot; title=&quot;Consuming&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Consuming&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita sudah belajar tentang Ownership &amp;amp; Borrowing di Swift, agar lebih mudah diingat, berikut adalah perbedaan utama antara &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;borrowing&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;inout&lt;/span&gt;, dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;consuming&lt;/span&gt;:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;borrowing&lt;/span&gt;: Digunakan untuk meminjam value dari suatu variabel (Read Only).&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;inout&lt;/span&gt;: Digunakan untuk meminjam value dari suatu variabel dan kita bisa mengubah valuenya.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;consuming&lt;/span&gt;: Digunakan untuk memindahkan ownership dari suatu variabel.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Referensi:&lt;/strong&gt;&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://infinum.com/blog/swift-ownership&quot; class=&quot;css-17g8l3v&quot;&gt;https://infinum.com/blog/swift-ownership&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://csl.cool/2023/06/05/ios-dev/swift/swift-noncopyable-types-and-variable-ownership&quot; class=&quot;css-17g8l3v&quot;&gt;http://csl.cool/2023/06/05/ios-dev/swift/swift-noncopyable-types-and-variable-ownership&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Sharing Code iOS & Android dengan Rust]]></title><description><![CDATA[Tutorial memanggil kode Rust di Swift dan Kotlin menggunakan UniFFI.]]></description><link>https://blog.alfin.dev/articlesharing-code-ios-android-dengan-rust</link><guid isPermaLink="false">https://blog.alfin.dev/articlesharing-code-ios-android-dengan-rust</guid><pubDate>Sun, 25 Aug 2024 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dalam membuat aplikasi Mobile tentu menggunakan teknologi Native dari masing-masing platform seperti SwiftUI untuk iOS dan Jetpack Compose untuk Android adalah pilihan terbaik dalam segi performa dan User Experience (UX).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun, kita juga tahu bahwa dalam membangun aplikasi Mobile, kita tidak hanya membuat User Interface (UI) saja, ada banyak sekali hal lain yang perlu kita buat, seperti network call, caching, image processing, dll. Yang mana itu sebetulnya tidak platform specific seperti UI, sehingga kita bisa mengurangi redundansi penulisan kode untuk bagian-bagian tersebut dengan cara hanya menulis 1 kali saja, kemudian kita akan pakai di kedua platform!&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ada beberapa cara Sharing Code yang bisa kita pilih, mungkin menggunakan Kotlin Multi Platform (KMP), mungkin menggunakan C++, atau menggunakan bahasa pemrograman Rust yang akan kita gunakan dalam tutorial ini.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#kenapa-rust&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;kenapa-rust&quot;&gt;Kenapa Rust?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa alasan mengapa Rust mungkin cocok digunakan dalam Sharing Code pada aplikasi Mobile:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-performance&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-performance&quot;&gt;1. Performance&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Rust dikenal sebagai bahasa yang memiliki performa sangat tinggi, bahkan bisa mendekati C/C++. Hal ini bisa didapatkan dari Zero-Cost Abstraction (abstraksi yang tidak berdampak ke performa pada runtime) yang ada pada Rust dan juga memory management yang tidak menggunakan Garbage Collector.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Karena performanya yang sangat oke, ada beberapa perusahaan besar yang mulai mengadopsi Rust, contohnya seperti Discord &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://discord.com/blog/why-discord-is-switching-from-go-to-rust&quot; class=&quot;css-17g8l3v&quot;&gt;(dari Go ke Rust)&lt;/a&gt;, Figma &lt;a target=&quot;_blank&quot; href=&quot;https://www.figma.com/blog/rust-in-production-at-figma/&quot; class=&quot;css-17g8l3v&quot;&gt;(dari Typescript ke Rust)&lt;/a&gt;, dll&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-memory-safety&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-memory-safety&quot;&gt;2. Memory Safety&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Memory Safety artinya program kita akan terbebas dari bugs yang berhubungan dengan memory management, seperti memory leaks (memory tidak pernah di-deallocate), mengakses null pointer, melakukan double free, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah, di Rust, masalah-masalah tersebut akan terdeteksi lebih awal pada saat program kita dicompile.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Karena alasan memory safety inilah &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://en.wikipedia.org/wiki/Rust_for_Linux&quot; class=&quot;css-17g8l3v&quot;&gt;Linux&lt;/a&gt; &amp;amp; &lt;a target=&quot;_blank&quot; href=&quot;https://medium.com/@Aaron0928/30-year-old-code-killed-microsoft-rewrites-windows-kernel-with-180-000-lines-of-rust-f891c95959f2&quot; class=&quot;css-17g8l3v&quot;&gt;Windows&lt;/a&gt; mulai mengadopsi Rust dalam kernel OS-nya. Bahkan departemen pertahanan AS (DARPA) mulai rewrite program yang mereka tulis menggunakan &lt;a target=&quot;_blank&quot; href=&quot;https://www.darpa.mil/program/translating-all-c-to-rust&quot; class=&quot;css-17g8l3v&quot;&gt;C ke Rust&lt;/a&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-productivity&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-productivity&quot;&gt;3. Productivity&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ada beberapa fitur pada Rust yang dapat meningkatkan produktivitas kita sebagai Developer, misalnya Macros untuk code generator, Auto Completion, Auto Formatter, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika program kita ada error, error message nya pun sangat useful. bahkan kadang compilernya memberikan suggestion untuk memperbaiki error tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Selain itu, ada ratusan ribu crates (library) di &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://crates.io&quot; class=&quot;css-17g8l3v&quot;&gt;crates.io&lt;/a&gt; yang dapat kita gunakan sehingga proses development menjadi lebih cepat.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-support-dari-android&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-support-dari-android&quot;&gt;4. Support dari Android&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sejak beberapa tahun lalu, Android sudah mendukung Rust sebagai bahasa pemrograman untuk membangun native OS components mereka. (&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://source.android.com/docs/setup/build/rust/building-rust-modules/overview&quot; class=&quot;css-17g8l3v&quot;&gt;https://source.android.com/docs/setup/build/rust/building-rust-modules/overview&lt;/a&gt;)&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#prerequisites&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;prerequisites&quot;&gt;Prerequisites&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengikuti tutorial ini, pastikan kamu sudah menginstall:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Rust&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Xcode&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Android Studio&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#setup-project&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;setup-project&quot;&gt;Setup Project&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita akan mulai membuat projectnya, kita akan membuat library Rust yang memiliki function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;get_message&lt;/span&gt; dan library tersebut akan kita gunakan di iOS dan Android.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buat folder baru bernama &amp;quot;greeting-demo&amp;quot;&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-sh css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;mkdir greeting-demo&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cd greeting-demo&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-library-rust&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-library-rust&quot;&gt;Membuat Library Rust&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk membuat library Rust, jalankan command:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo new greeting --lib&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian tambahkan crate &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;uniffi&lt;/span&gt; ke library kita:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Cargo.toml&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-toml css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;[lib]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;crate_type = [&amp;quot;cdylib&amp;quot;, &amp;quot;staticlib&amp;quot;]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;name = &amp;quot;greeting&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;[dependencies]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;uniffi = { version = &amp;quot;0.28.1&amp;quot;, features = [&amp;quot;cli&amp;quot;] }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah itu tambahkan function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;get_message&lt;/span&gt; pada file &amp;quot;lib.rs&amp;quot;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;lib.rs&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/rust.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-rust css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token namespace&quot; style=&quot;color:rgb(178, 204, 214)&quot;&gt;uniffi&lt;/span&gt;&lt;span class=&quot;token namespace punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token macro property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;setup_scaffolding!&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token attribute attr-name&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;#[uniffi::export]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;get_message&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Hello from Rust! 🦀&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terakhir, buat file &amp;quot;uniffi-bindgen.rs&amp;quot; di dalam folder &amp;quot;bin&amp;quot;, yang berisi:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;uniffi-bindgen.rs&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/rust.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-rust css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fn&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token namespace&quot; style=&quot;color:rgb(178, 204, 214)&quot;&gt;uniffi&lt;/span&gt;&lt;span class=&quot;token namespace punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;uniffi_bindgen_main&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita build, maka akan muncul sebuah dynamic library bernama &amp;quot;libgreeting.dylib&amp;quot; pada folder &amp;quot;target/debug&amp;quot; yang akan kita pakai pada step berikutnya.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-sh css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo build&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-aplikasi-ios&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-aplikasi-ios&quot;&gt;Membuat Aplikasi iOS&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-setup-project&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-setup-project&quot;&gt;1. Setup Project&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka Xcode dan buat project SwiftUI baru bernama &amp;quot;GreetingIOS&amp;quot; pada folder &amp;quot;greeting&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Setup Project&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/sharing-code-ios-android-dengan-rust/new-ios-project.png&quot; alt=&quot;Setup Project&quot; title=&quot;Setup Project&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Setup Project&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-membuat-ios-binding--binaries&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-membuat-ios-binding--binaries&quot;&gt;2. Membuat iOS Binding &amp;amp; Binaries&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pertama, kita akan generate binding terlebih dahulu agar kita bisa memanggil library rust di swift.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo run --bin uniffi-bindgen generate --library ./target/debug/libgreeting.dylib --language swift --out-dir ./bindings&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Command di atas akan menghasilkan folder &amp;quot;bindings&amp;quot; di project rust kita yang berisi binding rust untuk swift.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lalu pindahkan file &amp;quot;greeting.swift&amp;quot; ke folder &amp;quot;ios&amp;quot; dan rename menjadi &amp;quot;Greeting.swift&amp;quot;&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;mv ./bindings/greeting.swift ./ios/Greeting.swift&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian tambahkan beberapa target berikut ke Rust:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;rustup target add aarch64-apple-ios-sim aarch64-apple-ios&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jalankan command berikut untuk build library iOS:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo build --release --target=aarch64-apple-ios-sim&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo build --release --target=aarch64-apple-ios&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Command di atas akan menghasilkan 2 file binary bernama &amp;quot;target/aarch64-apple-ios-sim/release/libgreeting.a&amp;quot; dan &amp;quot;target/aarch64-apple-ios/release/libgreeting.a&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-membuat-xcframework&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-membuat-xcframework&quot;&gt;3. Membuat XCFramework&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;XCFramework memungkinkan kita untuk mengimport library iOS dengan lebih mudah. Jadi, kita akan membuat file .xcframework dari 2 file binary di atas.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pertama, kita ubah rename dulu &amp;quot;bindings/greetingFFI.modulemap&amp;quot; menjadi &amp;quot;bindings/module.modulemap&amp;quot; agar Xcode dapat menemukan module kita.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian, buat file .xcframework:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;xcodebuild -create-xcframework \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -library ./target/aarch64-apple-ios-sim/release/libgreeting.a -headers ./bindings \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -library ./target/aarch64-apple-ios/release/libgreeting.a -headers ./bindings \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -output &amp;quot;ios/Greeting.xcframework&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-import-xcframework-di-xcode&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-import-xcframework-di-xcode&quot;&gt;4. Import XCFramework di Xcode&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan drag &amp;amp; drop file &amp;quot;Greeting.xcframework&amp;quot; dan file &amp;quot;Greeting.swift&amp;quot; ke project iOS kita.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita sudah bisa memanggil function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;getMessage&lt;/span&gt; dari Rust di Swift.&lt;/p&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Penamaan function akan disesuaikan secara otomatis sesuai konvensi dari masing-masing bahasa oleh binding yang telah kita buat di awal. Misalnya dalam hal ini &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;get_message&lt;/span&gt; di Rust akan menjadi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;getMessage&lt;/span&gt; di Swift.&lt;/p&gt;&lt;/div&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;ContentView.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ContentView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;some&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VStack&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getMessage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token other-directive property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;#Preview&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ContentView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;iOS&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/sharing-code-ios-android-dengan-rust/ios.png&quot; alt=&quot;iOS&quot; title=&quot;iOS&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;iOS&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#5-automation-script&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;5-automation-script&quot;&gt;5. Automation Script&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar tiap kali ada perubahan di library Rust-nya kita tidak perlu menjalankan command satu per-satu, lebih baik kita membuat script automasi untuk pembuatan XCFramework.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Buat file baru bernama &amp;quot;build_ios.sh&amp;quot; yang berisi:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;build ios.sh&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-sh css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;# Build the dylib&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo build&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;# Generate bindings&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo run --bin uniffi-bindgen generate --library ./target/debug/libgreeting.dylib --language swift --out-dir ./bindings&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;# Add the iOS targets and build&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;for TARGET in \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    aarch64-apple-darwin \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    aarch64-apple-ios \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    aarch64-apple-ios-sim \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    x86_64-apple-darwin \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    x86_64-apple-ios; do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    rustup target add $TARGET&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    cargo build --release --target=$TARGET&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;done&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;# Rename *.modulemap to module.modulemap&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;mv ./bindings/greetingFFI.modulemap ./bindings/module.modulemap&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;# Move the Swift file to the project&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;rm ./ios/Greeting.swift&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;mv ./bindings/greeting.swift ./ios/Greeting.swift&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;# Recreate XCFramework&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;rm -rf &amp;quot;ios/Greeting.xcframework&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;xcodebuild -create-xcframework \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -library ./target/aarch64-apple-ios-sim/release/libgreeting.a -headers ./bindings \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -library ./target/aarch64-apple-ios/release/libgreeting.a -headers ./bindings \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -output &amp;quot;ios/Greeting.xcframework&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;# Cleanup&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;rm -rf bindings&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;chmod +x build_ios.sh&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;./build_ios.sh&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-aplikasi-android&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-aplikasi-android&quot;&gt;Membuat Aplikasi Android&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-setup-project-1&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-setup-project-1&quot;&gt;1. Setup Project&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka Android Studio, dan buat project baru bernama &amp;quot;GreetingAndroid&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Setup Project&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/sharing-code-ios-android-dengan-rust/new-android-project.png&quot; alt=&quot;Setup Project&quot; title=&quot;Setup Project&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Setup Project&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di Android, kita membutuhkan NDK (Native Development Kit) untuk menggunakan library yang ditulis menggunakan bahasa native seperti C, C++ dan Rust.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan klik Tools -&amp;gt; SDK Manager -&amp;gt; SDK Tools kemudian &amp;quot;Check (NDK Side by Side)&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;NDK&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/sharing-code-ios-android-dengan-rust/ndk.png&quot; alt=&quot;NDK&quot; title=&quot;NDK&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;NDK&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah itu pindah ke project Rust, dan jalankan command berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo install cargo-ndk&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dan tambahkan beberapa target berikut ke Rust:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;rustup target add \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    aarch64-linux-android \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    armv7-linux-androideabi \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    i686-linux-android \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    x86_64-linux-android&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-membuat-library-android&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-membuat-library-android&quot;&gt;2. Membuat Library Android&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jalankan command berikut untuk membuat library Android:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo ndk -o ../GreetingAndroid/app/src/main/jniLibs \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    --manifest-path ./Cargo.toml \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -t armeabi-v7a \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -t arm64-v8a \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -t x86 \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -t x86_64 \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    build --release&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-generate-binding&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-generate-binding&quot;&gt;3. Generate Binding&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian kita perlu generate Binding Rust ke Kotlin menggunakan command berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo run --bin uniffi-bindgen generate --library ./target/debug/libgreeting.dylib --language kotlin --out-dir ../GreetingAndroid/app/src/main/java/dev/alfin/greetingandroid&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-import-library-di-android-studio&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-import-library-di-android-studio&quot;&gt;4. Import Library di Android Studio&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pertama, kita perlu menambahkan 2 dependencies berikut di file &amp;quot;build.gradle.kts&amp;quot;&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;dependencies {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    // ...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    // UniFFI&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    implementation(&amp;quot;net.java.dev.jna:jna:5.7.0@aar&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    implementation(&amp;quot;org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.4&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita sudah bisa memanggil function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;getMessage&lt;/span&gt; dari Rust di Kotlin.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;MainActivity.kt&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; uniffi&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;greeting&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;getMessage&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; MainActivity &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;ComponentActivity&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;onCreate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;savedInstanceState&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Bundle&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;onCreate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;savedInstanceState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;enableEdgeToEdge&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        setContent &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            GreetingAndroidTheme &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;Scaffold&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;modifier &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Modifier&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fillMaxSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; innerPadding &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;Column&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                        verticalArrangement &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Arrangement&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;Center&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                        horizontalAlignment &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Alignment&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;CenterHorizontally&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                        modifier &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Modifier&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fillMaxSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;padding&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;innerPadding&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;Text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                            text &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getMessage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Android&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/sharing-code-ios-android-dengan-rust/android.png&quot; alt=&quot;Android&quot; title=&quot;Android&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Android&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#5-automation-script-1&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;5-automation-script-1&quot;&gt;5. Automation Script&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar tiap kali ada perubahan di library Rust-nya kita tidak perlu menjalankan command satu per-satu, lebih baik kita membuat script automasi untuk pembuatan Library Android.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Buat file baru bernama &amp;quot;build_android.sh&amp;quot; yang berisi:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;build android.sh&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-sh css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;#!/bin/bash&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;# Set up cargo-ndk and add the Android targets&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo install cargo-ndk&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;rustup target add aarch64-linux-android armv7-linux-androideabi i686-linux-android x86_64-linux-android&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;# Build the dylib&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo build&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;# Build the Android libraries in jniLibs&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo ndk -o ../GreetingAndroid/app/src/main/jniLibs \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    --manifest-path ./Cargo.toml \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -t armeabi-v7a \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -t arm64-v8a \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -t x86 \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    -t x86_64 \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    build --release&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;# Create Kotlin bindings&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;cargo run --bin uniffi-bindgen generate --library ./target/debug/libgreeting.dylib --language kotlin --out-dir ../GreetingAndroid/app/src/main/java/dev/alfin/greetingandroid&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;chmod +x build_android.sh&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;./build_android.sh&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita telah belajar bagaimana cara membuat sebuah library di Rust yang bisa digunakan di platform iOS dan Android. Selanjutnya mungkin kamu bisa kembangkan lagi library-nya agar bisa digunakan juga di Web atau di Desktop.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Source code lengkap dari tutorial ini bisa kalian akses di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/alfinsyahruddin/greeting-demo&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/alfinsyahruddin/greeting-demo&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Sourcery: Meta-programming pada iOS]]></title><description><![CDATA[Stop menulis kode yang repetitif! 🎉]]></description><link>https://blog.alfin.dev/articlemeta-programming-pada-ios</link><guid isPermaLink="false">https://blog.alfin.dev/articlemeta-programming-pada-ios</guid><pubDate>Sun, 09 Jun 2024 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Menulis kode adalah kegiatan yang paling saya sukai, saya sudah menganggapnya sebagai hobi. Namun, menulis kode yang repetitif adalah kegiatan yang paling saya benci. Mungkin bukan benci, tapi lebih ke malas saja. 😅&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Contohnya adalah ketika menulis kode unit testing, kita perlu membuat mock dari sebuah &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;protocol&lt;/span&gt;. Bayangkan kalau kita punya puluhan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;protocol&lt;/span&gt;, dan di &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;protocol&lt;/span&gt; tersebut mempunyai banyak sekali functions! Dan yang paling repot adalah jika kita ingin menambahkan 1 function baru ke &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;protocol&lt;/span&gt;, kita juga harus menambahkan juga ke mock kita satu per-satu. 😭&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah, untuk mengatasi permasalahan tersebut, kita bisa melakukan Meta-programming.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-meta-programming&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-meta-programming&quot;&gt;Apa itu Meta-programming?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css u8209z&quot;&gt;.css-u8209z{padding-left:48px;padding-right:48px;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-u8209z&quot;&gt;&lt;style data-emotion=&quot;css z77zqz&quot;&gt;.css-z77zqz{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:500;font-size:1.25rem;line-height:1.6;color:rgba(0,0,0,0.5);font-size:16px;text-indent:-0.45em;}.css-z77zqz::before{content:open-quote;}.css-z77zqz::after{content:close-quote;}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-z77zqz&quot;&gt;Meta-programming adalah teknik pemrograman di mana program komputer dapat menulis, memodifikasi, atau menghasilkan program lain, atau bahkan mengubah dirinya sendiri saat berjalan.&lt;/h6&gt;&lt;style data-emotion=&quot;css 18k19ow&quot;&gt;.css-18k19ow{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.75;color:rgba(0,0,0,0.25);}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-subtitle1 css-18k19ow&quot;&gt;Chat GPT&lt;/h6&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, dengan Meta-programming kita bisa membuat program yang dapat memodifikasi dan menghasilkan program lain dari program yang ada. Sehingga kode yang kita tulis menjadi lebih dinamis, efisien dan tidak terlalu banyak boilerplate code.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah manfaat dari Meta-programming:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Meminimalisir penulisan kode yang repetitif&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Mempercepat proses development aplikasi&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Menghindari Human Error&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Kode yang dihasilkan lebih efisien&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Meningkatkan Developer Experience&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#sourcery&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;sourcery&quot;&gt;Sourcery&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sourcery merupakan salah satu library open-source Meta-programming untuk bahasa pemrograman Swift. Sourcery memungkinkan kita untuk meng-generate boilerplate code secara otomatis.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sourcery telah digunakan oleh lebih dari 40.000 project, termasuk Airbnb, Bumble, dan New York Times.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#fitur-sourcery&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;fitur-sourcery&quot;&gt;Fitur Sourcery&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lalu, apa saja yang bisa diotomatisasi oleh Sourcery ?&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://krzysztofzablocki.github.io/Sourcery/equatable.html&quot; class=&quot;css-17g8l3v&quot;&gt;Equality&lt;/a&gt; &amp;amp; &lt;a target=&quot;_blank&quot; href=&quot;https://krzysztofzablocki.github.io/Sourcery/hashable.html&quot; class=&quot;css-17g8l3v&quot;&gt;Hashing&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://krzysztofzablocki.github.io/Sourcery/enum-cases.html&quot; class=&quot;css-17g8l3v&quot;&gt;Enum cases &amp;amp; Counts&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://krzysztofzablocki.github.io/Sourcery/lenses.html&quot; class=&quot;css-17g8l3v&quot;&gt;Lenses&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://krzysztofzablocki.github.io/Sourcery/mocks.html&quot; class=&quot;css-17g8l3v&quot;&gt;Mocks &amp;amp; Stubs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://krzysztofzablocki.github.io/Sourcery/decorator.html&quot; class=&quot;css-17g8l3v&quot;&gt;Decorators&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://krzysztofzablocki.github.io/Sourcery/codable.html&quot; class=&quot;css-17g8l3v&quot;&gt;Persistence and advanced Codable&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://krzysztofzablocki.github.io/Sourcery/diffable.html&quot; class=&quot;css-17g8l3v&quot;&gt;Property level diffing&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Bahkan Sourcery dapat meng-generate UI secara otomatis, kita hanya perlu mendefinisikan struktur datanya!
&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/krzysztofzablocki/AutomaticSettings&quot; class=&quot;css-17g8l3v&quot;&gt;Automatic Settings&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#cara-kerja-sourcery&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;cara-kerja-sourcery&quot;&gt;Cara kerja Sourcery&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika tanpa Sourcery, Xcode akan langsung mengkompilasi kode yang kita tulis menjadi sebuah aplikasi.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Tanpa Sourcery&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/meta-programming-pada-ios/without-sourcery.png&quot; alt=&quot;Tanpa Sourcery&quot; title=&quot;Tanpa Sourcery&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Tanpa Sourcery&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah, jika menggunakan Sourcery, ada 1 proses tambahan yang dilakukan oleh Sourcery sebelum proses kompilasi kode, Sourcery akan meng-generate suatu kode dari Template yang telah kita berikan.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Dengan Sourcery&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/meta-programming-pada-ios/with-sourcery.png&quot; alt=&quot;Dengan Sourcery&quot; title=&quot;Dengan Sourcery&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Dengan Sourcery&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#setup-project&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;setup-project&quot;&gt;Setup Project&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke, sekarang kita akan coba menyelesaikan permasalahan kita di awal tentang bagaimana cara membuat mock secara otomatis menggunakan Sourcery.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka Xcode dan buatlah project baru bernama &amp;quot;SourceryDemo&amp;quot; dan jangan lupa centang &amp;quot;Include Tests&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Setup Project&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/meta-programming-pada-ios/create-project.png&quot; alt=&quot;Setup Project&quot; title=&quot;Setup Project&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Setup Project&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#instalasi-sourcery&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;instalasi-sourcery&quot;&gt;Instalasi Sourcery&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menggunakan Sourcery, silakan download zip yang berisi binary dari Sourcery pada link di bawah ini terlebih dahulu:
&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/krzysztofzablocki/Sourcery/releases/tag/2.2.4&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/krzysztofzablocki/Sourcery/releases/tag/2.2.4&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah ter-download, extract dan cari binary sourcery, kemudian buat folder bernama &amp;quot;sourcery&amp;quot; di dalam project &amp;quot;SourceryDemo&amp;quot; dan pindahkan binary sourcery ke dalam folder tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-file-konfigurasi&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-file-konfigurasi&quot;&gt;Membuat File Konfigurasi&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Masih di dalam folder &amp;quot;sourcery&amp;quot;, silakan buat file baru bernama &amp;quot;.sourcery.yml&amp;quot; yang berisi:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;.sourcery.yml&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-yaml css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token key atrule&quot;&gt;configurations&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;sources&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; ../SourceryDemo/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;templates&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; ./templates/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;output&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; ../SourceryDemo/Generated/&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;link&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;          &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;project&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; ../SourceryDemo.xcodeproj&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;          &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;targets&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;SourceryDemo&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;          &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;group&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; SourceryDemo/Generated&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada file konfigurasi di atas, ada 3 bagian, yaitu:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;sources: Letak Source Code kita.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;templates: Letak template-template yang akan digunakan Sourcery untuk meng-generate code.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;output: Letak dimana hasil generate code akan disimpan.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-template&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-template&quot;&gt;Membuat Template&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sourcery menggunakan template language bernama Stencil. Sintaksnya sangat mirip dengan Django dan Mustache.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buat folder bernama &amp;quot;templates&amp;quot; di dalam folder &amp;quot;sourcery&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian download template Sourcery yang kita ingin kita gunakan di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://krzysztofzablocki.github.io/Sourcery/mocks.html&quot; class=&quot;css-17g8l3v&quot;&gt;https://krzysztofzablocki.github.io/Sourcery/mocks.html&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;setelah di-download, pindahkan ke folder &amp;quot;templates&amp;quot;. Sehingga struktur file kita akan menjadi seperti ini:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Struktur File&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/meta-programming-pada-ios/files.png&quot; alt=&quot;Struktur File&quot; title=&quot;Struktur File&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Struktur File&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#menambahkan-run-script&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;menambahkan-run-script&quot;&gt;Menambahkan Run Script&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar setiap kali kita melakukan build, Sourcery akan meng-generate code. Silakan buat Run Script baru dengan cara klik project SourceryDemo -&amp;gt; Build Phases -&amp;gt; New Run Script Phase&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;New Run Script&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/meta-programming-pada-ios/new-run-script.png&quot; alt=&quot;New Run Script&quot; title=&quot;New Run Script&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;New Run Script&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ubah isi dari Run Script menjadi:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-bash css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;./sourcery/sourcery --config ./sourcery/.sourcery.yml&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;kemudian pindahkan urutannya sebelum phase &amp;quot;Compile Sources&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Run Script&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/meta-programming-pada-ios/order-run-script.png&quot; alt=&quot;Run Script&quot; title=&quot;Run Script&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Run Script&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terakhir, kita perlu mengubah &amp;quot;User Script Sandboxing&amp;quot; menjadi &amp;quot;NO&amp;quot; pada Build Settings.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Build Settings&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/meta-programming-pada-ios/sandbox.png&quot; alt=&quot;Build Settings&quot; title=&quot;Build Settings&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Build Settings&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#menggunakan-template&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;menggunakan-template&quot;&gt;Menggunakan Template&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebelum menggunakan template, kita akan membuat sample code terlebih dahulu, silakan buat file bernama &amp;quot;UserService.swift&amp;quot; dan ubah isinya menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;UserService.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;protocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserServiceProtocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;login&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Bool&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserServiceProtocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;login&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Bool&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah, untuk menggunakan template &amp;quot;AutoMockable&amp;quot; yang telah kita tambahkan tadi, caranya sangat mudah:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// sourcery: AutoMockable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;protocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserServiceProtocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah dicompile, secara otomatis Sourcery akan meng-generate sebuah &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;class&lt;/span&gt; bernama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UserServiceProtocolMock&lt;/span&gt; di dalam group &amp;quot;Generated&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dan kita pun bisa langsung menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;class&lt;/span&gt; tersebut pada kode Unit Test kita 🎉&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;testExample&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; userService &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserServiceProtocolMock&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    userService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;loginBoolClosure &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTAssertTrue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;userService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;login&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#whats-next&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;whats-next&quot;&gt;What&amp;#x27;s Next?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang kita telah belajar tentang Apa itu Meta-programming, Apa itu Sourcery, Cara kerja Sourcery, serta bagaimana cara menggunakannya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Selanjutnya, kamu bisa coba eksperimen menggunakan template-template Sourcery yang lain atau bahkan membuat template sendiri sesuai dengan kebutuhan di project kamu.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Source code lengkapnya bisa kamu akses melalui link berikut: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/alfinsyahruddin/SourceryDemo&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/alfinsyahruddin/SourceryDemo&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Bluetooth Low Energy (BLE) pada iOS]]></title><description><![CDATA[Transfer data hemat daya menggunakan Bluetooth Low Energy.]]></description><link>https://blog.alfin.dev/articlebluetooth-low-energy-pada-ios</link><guid isPermaLink="false">https://blog.alfin.dev/articlebluetooth-low-energy-pada-ios</guid><pubDate>Sat, 20 Apr 2024 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Mulai dari Earphone Wireless yang kita pakai untuk mendengarkan musik, Smartwatch yang kita gunakan untuk memonitor kesehatan kita, sampai dengan Beacon yang terdapat di museum, bisa hadir karena adanya teknologi Bluetooth Low Energy (BLE).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada artikel ini, kita akan belajar mengenai Apa itu BLE, Perbedaan BLE dengan Classic Bluetooth, Generic Attribute Profile (GATT), serta bagaimana cara membuat Peripheral dan Central menggunakan framework Core Bluetooth.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-ble&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-ble&quot;&gt;Apa itu BLE?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Bluetooth Low Energy atau yang biasa dikenal dengan BLE merupakan protokol terbaru dari Bluetooth yang mengoptimalkan kinerja Bluetooth dalam aspek efektivitas pengunaan daya sehingga akan mengonsumsi lebih sedikit daya daripada Bluetooth versi sebelumnya (Classic Bluetooth).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Umumnya beacon atau perangkat-perangkat IoT seperti sensor suhu itu harus mengirimkan data secara berkala, maka sumber daya atau energi listrik menjadi faktor yang sangat krusial, nah teknologi BLE hadir untuk menyelesaikan permasalahan tersebut karena teknologi BLE sangat efisien dalam pemakaian baterai.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#ble-vs-classic-bluetooth&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;ble-vs-classic-bluetooth&quot;&gt;BLE vs Classic Bluetooth&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Perbedaan utama dari BLE dengan Classic Bluetooth adalah dari segi konsumsi sumber daya-nya. Sebagai perbandingan, 1 Watt Classic Bluetooth setara dengan 0.01-0.5 Watt BLE!&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian latency BLE juga lebih rendah dibandingkan dengan Classic Bluetooth, BLE 6 ms, sedangkan Classic Bluetooth sekitar 100 ms.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun untuk jangkauan sinyal yang bisa dipancarkan lebih unggul Classic Bluetooth, yaitu sekitar 10-100 meter, sedangkan BLE maksimal hanya 10 meter saja.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kekurangan lain dari BLE adalah mengenai Data Rate yang lebih rendah dibandingkan Classic Bluetooth yaitu sekitar 1-3 Mbps, sedangkan BLE hanya 1 Mbps.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian perbedaan terakhir adalah Classic Bluetooth perlu melakukan Pairing Device untuk melakukan transfer data, sedangkan BLE tidak perlu.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dari beberapa perbedaan di atas, bisa disimpulkan bahwa Classic Bluetooth cocok digunakan untuk mengirimkan data antar device yang berukuran agak besar seperti video, dll dengan jarak yang agak jauh. Sedangkan BLE cocok untuk mengirimkan data secara berkala dalam waktu yang lama seperti sensor perangkat IoT dan Beacon.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#peripheral-vs-central&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;peripheral-vs-central&quot;&gt;Peripheral vs Central&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Perangkat Bluetooth Low Energy (BLE) dapat memiliki peran antara menjadi Peripheral atau menjadi Central, tidak bisa keduanya. Peripheral bisa dianalogikan sebagai Server dan Central sebagai Client.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Contohnya adalah Smartwatch yang mengirimkan data detak jantung kepada HP kita, dalam contoh tersebut Smartwatch berperan sebagai Peripheral, dan HP kita berperan sebagai Central karena HP kita lah yang menerima data dari Smartwatch (Central).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Satu Peripheral dapat terhubung dengan beberapa Central, dan Satu Central dapat terhubung dengan beberapa Peripheral dalam satu waktu.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#generic-attribute-profile-gatt&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;generic-attribute-profile-gatt&quot;&gt;Generic Attribute Profile (GATT)&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Generic Attribute Profile atau yang biasa disebut dengan GATT merupakan sebuah protokol yang mendefinisikan cara bagaimana 2 perangkat BLE untuk saling mengirim dan menerima data.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;GATT Profile&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/bluetooth-low-energy-pada-ios/gatt.png&quot; alt=&quot;GATT Profile&quot; title=&quot;GATT Profile&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;GATT Profile&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebuah Peripheral disebut juga sebagai GATT Server, karena berperan untuk menyediakan layanan kepada Central (GATT Client). GATT Server perlu mengimplementasikan GATT Profile dalam mendefiniskan layanan yang bisa digunakan oleh GATT Client.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ada 5 bagian dalam GATT Profile, yaitu:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-profile&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-profile&quot;&gt;1. Profile&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Profile merupakan bagian terluar pada GATT. Satu Profile dapat mempunyai beberapa Service. Contohnya adalah Profile Alat Pengukur Suhu mempunyai Service Suhu Celcius dan Service Suhu Fahrenheit.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-service&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-service&quot;&gt;2. Service&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Service merupakan gabungan beberapa Characteristic yang memiliki keterkaitan. Contohnya adalah Service Suhu Celcius mempunyai Characteristic Rata-Rata Suhu Seminggu Terakhir, Characteristic Suhu Real-Time, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-characteristic&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-characteristic&quot;&gt;3. Characteristic&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Characteristic merupakan bagian utama pada GATT, satu Characteristic merepresentasikan satu layanan atau fitur yang ada pada Peripheral (GATT Server). Contohnya adalah Characteristic Rata-Rata Suhu Seminggu Terakhir.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-value&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-value&quot;&gt;4. Value&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Value merupakan data yang terdapat pada Characteristic. Contohnya adalah Characteristic Rata-Rata Suhu Seminggu Terakhir mempunyai Value 30° Celcius.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#5-descriptor&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;5-descriptor&quot;&gt;5. Descriptor&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setiap Characteristic dapat mempunyai beberapa Descriptor. Sesuai namanya, Descriptor bertujuan untuk mendeskripsikan suatu Characteristic, misalnya fungsi dari Characteristic tersebut, format datanya, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#setup-project&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;setup-project&quot;&gt;Setup Project&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita akan mengimplementasikan Bluetooth Low Energy pada iOS, Kita akan membuat aplikasi sederhana bernama &amp;quot;Bluetify&amp;quot; yang dapat berperan sebagai Peripheral atau sebagai Central.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Hasil akhirnya nanti akan seperti ini:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Bluetify&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/bluetooth-low-energy-pada-ios/bluetify.png&quot; alt=&quot;Bluetify&quot; title=&quot;Bluetify&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Bluetify&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk melakukan testing aplikasi &amp;quot;Bluetify&amp;quot; ini, kita memerlukan 2 buah iPhone, yang satu berperan sebagai Peripheral dan yang satunya sebagai Central.&lt;/p&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#download-starter-project&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;download-starter-project&quot;&gt;Download Starter Project&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan download starter projectnya terlebih dahulu di link berikut, pilih branch &amp;quot;starter&amp;quot;:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/alfinsyahruddin/Bluetify/tree/starter&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/alfinsyahruddin/Bluetify/tree/starter&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika sudah, silakan buka projectnya melalui Xcode.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#struktur-project&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;struktur-project&quot;&gt;Struktur Project&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Struktur Project&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/bluetooth-low-energy-pada-ios/project-structure.png&quot; alt=&quot;Struktur Project&quot; title=&quot;Struktur Project&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Struktur Project&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada project &amp;quot;Bluetify&amp;quot;, terdapat 2 folder utama yaitu &amp;quot;BluetifyKit&amp;quot; dan &amp;quot;UI&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-bluetifykit&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;1-bluetifykit&quot;&gt;1. BluetifyKit&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;BluetifyKit berisi logic utama yang ada pada aplikasi ini.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Folder Enums&lt;/strong&gt;&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Bluetify: Berisi konfigurasi aplikasi Bluetify, seperti Nama Peripheral, dll.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;BluetifyUUID: Berisi kumpulan UUID yang ada pada Peripheral.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;State: Berisi UI State aplikasi kita.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Folder Helpers&lt;/strong&gt;&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;DataHelper: Digunakan untuk konversi tipe data &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Data&lt;/span&gt; ke tipe data lain dan sebaliknya.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;BluetifyPeripheralKit.swift&lt;/strong&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebuah Class yang berfungsi untuk melakukan advertising data dan mengirim notifikasi kepada Central. Semua logic dan detail implementasi terkait dengan Peripheral akan kita tambahkan di class ini.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;BluetifyCentralKit.swift&lt;/strong&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebuah Class yang berfungsi untuk melakukan scanning Peripheral, subscribe notifikasi dan mengirim message ke Peripheral. Semua logic dan detail implementasi terkait dengan Central akan kita tambahkan di class ini.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-ui&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;2-ui&quot;&gt;2. UI&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk membuat User Interface (UI) pada project ini, kita menggunakan SwiftUI karena syntax-nya sangat ringkas dan dapat mempercepat proses pembuatan UI jika dibandingkan dengan UIKit.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Folder Core&lt;/strong&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berisi komponen-komponen UI yang dapat digunakan di banyak tempat.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Folder Pages&lt;/strong&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berisi semua halaman yang ada pada aplikasi Bluetify.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#menambahkan-permission&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;menambahkan-permission&quot;&gt;Menambahkan Permission&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menggunakan fitur Bluetooth pada aplikasi kita, kita perlu menambahkan 2 permission berikut pada file Info.plist:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Info.plist&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&amp;lt;key&amp;gt;NSBluetoothPeripheralUsageDescription&amp;lt;/key&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&amp;lt;string&amp;gt;For advertising data.&amp;lt;/string&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&amp;lt;key&amp;gt;NSBluetoothAlwaysUsageDescription&amp;lt;/key&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&amp;lt;string&amp;gt;For transfer data between devices.&amp;lt;/string&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-peripheral&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-peripheral&quot;&gt;Membuat Peripheral&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka file &amp;quot;BluetifyPeripheralKit.swift&amp;quot;. Untuk membuat Peripheral, kita akan memodifikasi isi dari file ini.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#peripheral-manager&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;peripheral-manager&quot;&gt;Peripheral Manager&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan tambahkan code berikut sebelum &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;init&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheralManager&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;dan code berikut di dalam &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;init&lt;/span&gt; untuk membuat instance dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CBPeripheralManager&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    peripheralManager &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;delegate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; queue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#advertising&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;advertising&quot;&gt;Advertising&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Advertising merupakan proses dari Peripheral untuk melakukan broadcast data kepada Central. Advertising bertujuan agar Central dapat mendeteksi Peripheral, melakukan koneksi dan bertukar data dengan Peripheral.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan tambahkan code berikut di atas &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;init&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; deviceNameCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBMutableCharacteristic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; messageCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBMutableCharacteristic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; notificationCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBMutableCharacteristic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian ubah implementasi dari function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;startAdvertising&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;startAdvertising&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[PERIPHERAL] Start Advertising...&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    peripheralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;removeAllServices&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;deviceNameCharacteristic &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBMutableCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        type&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;deviceNameCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cbuuid&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        properties&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;read&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        value&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        permissions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;readable&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;deviceNameCharacteristic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;descriptors &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBMutableDescriptor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            type&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;CBUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBUUIDCharacteristicUserDescriptionString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            value&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;NSString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Characteristic for reading peripheral device names.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;messageCharacteristic &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBMutableCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        type&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;messageCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cbuuid&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        properties&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;write&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        value&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        permissions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;writeable&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;notificationCharacteristic &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBMutableCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        type&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;notificationCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cbuuid&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        properties&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;notify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        value&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        permissions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;readable&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; mainService &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBMutableService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;mainService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cbuuid&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; primary&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    mainService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;characteristics &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;37&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        deviceNameCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        messageCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        notificationCharacteristic&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;compactMap &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token short-argument&quot;&gt;$0&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;41&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    peripheralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;mainService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;43&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;44&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    state &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;advertising&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;45&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    peripheralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;startAdvertising&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;46&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBAdvertisementDataLocalNameKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Bluetify&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;peripheralName&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;rawValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;47&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBAdvertisementDataServiceUUIDsKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;mainService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cbuuid&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;48&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;49&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada code di atas, kita membuat sebuah Peripheral yang mempunyai 1 service bernama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;mainService&lt;/span&gt;, dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;mainService&lt;/span&gt; tersebut memiliki 3 Characteristics, yaitu:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;deviceNameCharacteristic&lt;/span&gt;: Informasi Nama Peripheral yang dapat dibaca oleh Central.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;messageCharacteristic&lt;/span&gt;: Message yang dapat dikirim oleh Central.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;notificationCharacteristic&lt;/span&gt;: Notifikasi yang akan dibroadcast ke Central.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tiap Service dan Characteristic yang kita buat, kita perlu membuat UUID-nya. Pada project ini, kamu bisa melihat UUID tersebut pada enum &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;BluetifyUUID&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita juga telah menambahkan Descriptor pada &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;deviceNameCharacteristic&lt;/span&gt; dengan tipe &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CBUUIDCharacteristicUserDescriptionString&lt;/span&gt; yang bertujuan untuk memberi tahu Central mengenai deskripsi dari Characteristic tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kamu bisa melihat tipe apa saja yang bisa digunakan untuk membuat Descriptor di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.apple.com/documentation/corebluetooth/cbdescriptor&quot; class=&quot;css-17g8l3v&quot;&gt;https://developer.apple.com/documentation/corebluetooth/cbdescriptor&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;startAdvertising&lt;/span&gt; akan kita panggil setelah bluetooth pada iPhone menyala. Silakan tambahkan code berikut pada delegate &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CBPeripheralManagerDelegate&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;peripheralManagerDidUpdateState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[PERIPHERAL] State: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;peripheral&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;state &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;unknown&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;unsupported&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;unauthorized&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;resetting&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;poweredOff&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;state &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bluetoothUnavailable&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;poweredOn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;startAdvertising&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@unknown&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;state &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bluetoothUnavailable&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada saat user keluar dari halaman Peripheral Mode, kita perlu memberhentikan Advertising. Silakan ubah implementasi dari function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;stopAdvertising&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;stopAdvertising&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Void&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[PERIPHERAL] Stop Advertising.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    state &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bluetoothUnavailable&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    peripheralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;stopAdvertising&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#read&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;read&quot;&gt;Read&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar Central dapat membaca Device Name dari Peripheral, silakan tambahkan code berikut pada delegate &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CBPeripheralManagerDelegate&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;peripheralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; didReceiveRead request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBATTRequest&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;rawValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;uuid&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;uuidString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;deviceNameCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;value &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; deviceName&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;asData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;respond&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; withResult&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;success&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#write&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;write&quot;&gt;Write&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar Peripheral dapat menerima Message yang dikirim dari Central, silakan tambahkan code berikut pada delegate &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CBPeripheralManagerDelegate&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;peripheralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; didReceiveWrite requests&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBATTRequest&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; requests &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;rawValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;uuid&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;uuidString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;messageCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; newMessage &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;asString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[PERIPHERAL] New Message: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;newMessage&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            message &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; newMessage&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;respond&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; withResult&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;success&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#notification&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;notification&quot;&gt;Notification&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengirim notifikasi dari Peripheral ke Central, silakan ubah implementasi pada function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;sendNotification&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;sendNotification&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Void&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; notificationCharacteristic &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    peripheralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;updateValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;asData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; notificationCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        onSubscribedCentrals&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; notificationCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;subscribedCentrals&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[PERIPHERAL] Send Notification: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-central&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-central&quot;&gt;Membuat Central&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka file &amp;quot;BluetifyCentralKit.swift&amp;quot;. Untuk membuat Central, kita akan memodifikasi isi dari file ini.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#central-manager&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;central-manager&quot;&gt;Central Manager&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan tambahkan code berikut sebelum &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;init&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; centralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBCentralManager&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheral&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;dan code berikut di dalam &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;init&lt;/span&gt; untuk membuat instance dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CBCentralManager&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    centralManager &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBCentralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;delegate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; queue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#scanning&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;scanning&quot;&gt;Scanning&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Scanning merupakan proses dari Central untuk mendeteksi Peripheral. Jika Peripheral terdeteksi, maka Central bisa melakukan koneksi ke Peripheral tersebut, dan setelah terhubung dengan Peripheral, Central dapat melakukan Read, Write, dan Subscribe Notification ke pada Peripheral yang terhubung.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan tambahkan code berikut di atas &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;init&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheral&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; deviceNameCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBCharacteristic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; messageCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBCharacteristic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; notificationCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBCharacteristic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian ubah implementasi dari function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;startScanning&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;startScanning&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Void&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[CENTRAL] Start Scanning...&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    state &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;scanning&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    centralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;scanForPeripherals&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;withServices&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;mainService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cbuuid&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada code di atas, kita melakukan scanning untuk mencari Peripheral yang mempunyai Service dengan UUID Main Service yang ada pada &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;BluetifyUUID&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;startScanning&lt;/span&gt; akan kita panggil setelah bluetooth pada iPhone menyala. Silakan tambahkan code berikut pada delegate &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CBCentralManagerDelegate&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;centralManagerDidUpdateState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; central&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBCentralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[CENTRAL] State: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;central&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; central&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;state &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;unknown&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;unsupported&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;unauthorized&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;resetting&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;poweredOff&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;state &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bluetoothUnavailable&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;poweredOn&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;startScanning&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@unknown&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;state &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bluetoothUnavailable&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada saat user keluar dari halaman Central Mode, kita perlu memberhentikan Scanning. Silakan ubah implementasi dari function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;stopScanning&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;stopScanning&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Void&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[CENTRAL] Stop Scanning.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    centralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;stopScan&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#connection&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;connection&quot;&gt;Connection&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah proses Scanning, kita perlu melakukan koneksi terhadap Peripheral yang kita inginkan agar kita bisa bertukar data dengan Peripheral tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada delegate &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CBCentralManagerDelegate&lt;/span&gt;, silakan tambahkan code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;centralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; central&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBCentralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; didDiscover peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; advertisementData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;Any&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; rssi &lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;RSSI&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;NSNumber&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheralName &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;name &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[CENTRAL] Peripheral: `&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;peripheralName&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;`&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[CENTRAL] Connecting...&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    centralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;connect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; options&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;peripheral &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;centralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; central&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBCentralManager&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; didConnect peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[CENTRAL] Connected&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;delegate &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;discoverServices&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    state &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;connected&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah berhasil terkoneksi dengan Peripheral, kita perlu mengimplementasikan delegate &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CBPeripheralDelegate&lt;/span&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan tambahkan code berikut pada delegate &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CBPeripheralDelegate&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; didDiscoverServices error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; services &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;services &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; service &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; services &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;discoverCharacteristics&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; service&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; didDiscoverCharacteristicsFor service&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristics &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; service&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;characteristics &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[CENTRAL] Total characteristics: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;characteristics&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristics &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;uuid &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;deviceNameCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cbuuid &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;deviceNameCharacteristic &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;readDeviceName&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;uuid &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;messageCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cbuuid &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;messageCharacteristic &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;uuid &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;notificationCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cbuuid &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;notificationCharacteristic &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;subscribeNotification&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada code di atas, kita mencari 3 Characteristic, yaitu:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;deviceNameCharacteristic&lt;/span&gt;: Informasi Nama Peripheral yang akan dibaca oleh Central.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;messageCharacteristic&lt;/span&gt;: Message yang akan dikirim oleh Central.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;notificationCharacteristic&lt;/span&gt;: Notifikasi yang dibroadcast ke Central.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada saat pertama kali terhubung dengan Peripheral yang kita inginkan, kita panggil function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;readDeviceName&lt;/span&gt; untuk membaca Device Name dari Peripheral dan function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;subscribeNotification&lt;/span&gt; agar dapat menerima notifikasi dari Peripheral.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#read-1&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;read-1&quot;&gt;Read&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar Central dapat membaca Device Name dari Peripheral, silakan tambahkan code berikut pada delegate &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CBPeripheralDelegate&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; didUpdateValueFor characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;uuid &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;deviceNameCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cbuuid &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; deviceName &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;asString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;??&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[CENTRAL] DEVICE NAME: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;deviceName&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;deviceName &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; deviceName&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dan ubah implementasi dari function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;readDeviceName&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;readDeviceName&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Void&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; deviceNameCharacteristic &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    peripheral&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;readValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; deviceNameCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#write-1&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;write-1&quot;&gt;Write&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar Central dapat mengirim Message ke Peripheral, silakan ubah implementasi dari function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;sendMessage&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;sendMessage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Void&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; messageCharacteristic &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    peripheral&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;writeValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;asData&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; messageCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; type&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;withResponse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#notification-1&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;notification-1&quot;&gt;Notification&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar dapat menerima notifikasi dari Peripheral, silakan tambahkan code berikut pada function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;peripheral(_:didUpdateValueFor:error:)&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; peripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBPeripheral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; didUpdateValueFor characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CBCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;uuid &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;deviceNameCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cbuuid &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; deviceName &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;asString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;??&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[CENTRAL] DEVICE NAME: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;deviceName&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;deviceName &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; deviceName&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;uuid &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BluetifyUUID&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;notificationCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cbuuid &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; notification &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; characteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;value&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;asString&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;??&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;[CENTRAL] NOTIFICATION: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;notification&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;notification &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; notification&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dan ubah implementasi dari function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;subscribeNotification&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;subscribeNotification&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Void&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; notificationCharacteristic &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    peripheral&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setNotifyValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; notificationCharacteristic&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#whats-next&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;whats-next&quot;&gt;What&amp;#x27;s Next?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang kita telah belajar mengenai Apa itu BLE, Perbedaan BLE dengan Classic Bluetooth, Generic Attribute Profile (GATT), serta bagaimana cara membuat Peripheral dan Central menggunakan framework Core Bluetooth.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Selanjutnya, kamu bisa kembangkan lagi aplikasi Bluetify ini misalnya menambahkan Service dan Characteristic baru, melakukan pertukaran data di Mode Background, mengintegrasikan Core Bluetooth dengan WatchOS, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[CI/CD aplikasi iOS dengan Xcode Cloud]]></title><description><![CDATA[Otomatisasi build, testing, dan deployment aplikasi iOS ke Testflight & AppStore.]]></description><link>https://blog.alfin.dev/articleci-cd-aplikasi-ios-dengan-xcode-cloud</link><guid isPermaLink="false">https://blog.alfin.dev/articleci-cd-aplikasi-ios-dengan-xcode-cloud</guid><pubDate>Sat, 27 Jan 2024 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Proses distribusi aplikasi iOS yang kita buat, biasanya memerlukan proses yang cukup panjang, mulai dari melakukan pengujian, code signing, increment build number, melakukan build, menyiapkan screenshot, kemudian yang terakhir kita perlu untuk meng-upload ke Testflight dan AppStore.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengatasi hal tersebut, kita bisa menerapkan CI/CD pada project kita.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-cicd-&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-cicd-&quot;&gt;Apa itu CI/CD ?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;CI/CD merupakan singkatan dari Continuous Integration / Continuous Delivery atau Deployment. CI/CD dapat membantu kita dalam membuat otomatisasi proses distribusi aplikasi.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, ketika kita melakukan perubahan kode pada Git Repository, proses distribusi aplikasi akan berjalan secara otomatis.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sehingga kita bisa lebih fokus dalam mengembangkan aplikasi daripada menghabiskan waktu untuk melakukan hal-hal yang repetitif seperti distribusi aplikasi.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#manfaat-cicd&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;manfaat-cicd&quot;&gt;Manfaat CI/CD&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa manfaat yang akan kita dapatkan apabila kita menerapkan CI/CD:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Lebih hemat waktu&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Karena semua proses distribusi aplikasi dilakukan secara otomatis di cloud, maka kita akan punya lebih banyak waktu untuk melakukan hal-hal lain seperti mengembangkan fitur baru atau melakukan bug fixing.&lt;/p&gt;&lt;ol start=&quot;2&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Mempercepat distribusi aplikasi&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Proses distribusi aplikasi juga akan menjadi lebih cepat karena tiap kali kita melakukan perubahan kode, maka proses distribusi akan dilakukan secara otomatis tanpa perlu khawatir ada step yang terlewat.&lt;/p&gt;&lt;ol start=&quot;3&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Mendeteksi bug lebih cepat&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita menerapkan Unit Testing pada aplikasi kita, mungkin kita bisa menambahkan proses Testing pada pipeline CI yang kita buat. Sehingga apabila ada bug akan terdeteksi lebih cepat pada saat deployment, dan apabila ada bug maka kita perlu melakukan fixing agar pipeline CI yang kita buat bisa berjalan.&lt;/p&gt;&lt;ol start=&quot;4&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Siapa saja bisa melakukan distribusi aplikasi&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Bayangkan jika dalam 1 team, hanya satu orang saja yang mengerti dan mempunyai provisioning profile untuk melakukan deployment. Lalu pada suatu hari seseorang tersebut sedang cuti, dan kebetulan ada kebutuhan untuk mendistribusikan aplikasi. 😅&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah, dengan menerapkan CI/CD, semua orang dalam team bisa melakukan distribusi dan tidak terlalu bergantung dengan satu atau beberapa orang saja.&lt;/p&gt;&lt;ol start=&quot;5&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Menghindari Human Error&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita melakukan deployment secara manual, ada step-step yang bisa jadi kita terlewat atau melakukan kesalahan, misalnya kita ingin build untuk environment Staging tapi yang kita build malah untuk environment Development, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#tools-cicd&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;tools-cicd&quot;&gt;Tools CI/CD&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ada beberapa tools yang bisa kita gunakan untuk membuat CI/CD. Seperti Xcode Cloud, AppCenter, Fastlane, Codemagic, Jenkins, CircleCI, Travis CI, Github Actions, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun pada tutorial kali ini, kita akan menggunakan Xcode Cloud. Alasannya karena Xcode Cloud menyediakan layanan untuk membuat CI/CD secara gratis. 🥳&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Selain itu, Xcode Cloud juga menyediakan Graphical User Interface (GUI) yang terintegrasi langsung dengan Xcode, serta mempunyai cukup banyak fitur lainnya seperti Schedule Build, Menjalankan Test secara paralel, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; Xcode Cloud gratis selama kita menghabiskan kurang dari 25 jam build time per bulan.&lt;/p&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#persyaratan-xcode-cloud&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;persyaratan-xcode-cloud&quot;&gt;Persyaratan Xcode Cloud&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menggunakan Xcode Cloud, ada beberapa persyaratan yang harus kita penuhi, yaitu:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Telah mendaftar Apple Developer Program&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Xcode versi 14.0.1 atau lebih baru&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Menggunakan Build System versi baru (Xcode 10)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Menggunakan &amp;quot;Automatic Code Signing&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Menggunakan Source Code Management (SCM) yang didukung oleh Xcode Cloud, seperti Github, Gitlab dan Bitbucket.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-setup-workflow&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;1-setup-workflow&quot;&gt;1. Setup Workflow&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Workflow adalah konfigurasi untuk setiap step yang ingin dilakukan dalam proses CI/CD. Berikut adalah beberapa menu yang ada di dalam Workflow:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;General&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Environment&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Start Condition&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Actions&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Post Actions&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk melakukan setup Workflow pada project kita, silakan buka projectnya di Xcode, kemudian pilih Report Navigator, kemudian pilih tab &amp;quot;Cloud&amp;quot;, lalu klik &amp;quot;Get Started&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Setup Workflow&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-xcode-cloud/setup-workflow.png&quot; alt=&quot;Setup Workflow&quot; title=&quot;Setup Workflow&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Setup Workflow&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-general&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;2-general&quot;&gt;2. General&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada menu General, kita bisa mengedit nama dari Workflow yang telah dibuat, deskripsi, repository, dan memilih project / workspace.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-environment&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;3-environment&quot;&gt;3. Environment&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada menu Environment, kita bisa memilih versi Xcode dan macOS yang akan digunakan dalam proses CI/CD kita. Silakan pilih versi yang spesifik untuk menghindari behavior yang tidak diinginkan pada versi terbaru dari Xcode / macOS.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lamu juga bisa mencentang opsi &amp;quot;Clean&amp;quot;, jika tercentang Xcode akan melakukan build project kita tanpa cache.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dan jika kamu ingin menaruh Environment Variable seperti API_KEY, BASE_URL, dll. Kamu bisa menambahkannya di menu ini.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-start-condition&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;4-start-condition&quot;&gt;4. Start Condition&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di menu ini, kita bisa mengatur kapan CI/CD akan dijalankan, Xcode Cloud menyediakan beberapa opsi yang dapat kita pilih, yaitu:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Ketika ada perubahan Pull Request (PR).&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Ketika ada perubahan Tag.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Dijadwalkan, misalnya pada hari senin-jumat jam 5.30 sore.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Trigger Manual.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita juga bisa mencentang &amp;quot;Auto-cancel Build&amp;quot;. Jadi, ketika ada build yang sedang berjalan dan kebetulan ada build baru di branch yang sama, maka Xcode Cloud akan secara otomatis membatalkan build yang sedang berjalan, dan akan melakukan build baru&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#5-actions&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;5-actions&quot;&gt;5. Actions&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada menu Actions, kita bisa melakukan konfigurasi untuk setiap step yang akan dilakukan dalam proses CI/CD. Seperti:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#51-build&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;51-build&quot;&gt;5.1 Build&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita bisa mengatur Platform dan Scheme.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#52-test&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;52-test&quot;&gt;5.2 Test&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada bagian Test, Kita bisa menentukan apakah kita ingin melakukan deployment hanya jika Test yang kita buat telah lolos. Kita juga bisa memilih versi iPhone dan iOS yang ingin kita gunakan untuk menjalankan Test kita.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#53-analyze&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;53-analyze&quot;&gt;5.3 Analyze&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada bagian Analyze, Kita bisa menentukan apakah kita ingin melakukan deployment hanya jika Static Analyzer telah lolos. Static Analyzer adalah tool untuk mendeteksi source code kita tanpa menjalankannya, Static Analyzer dapat mendeteksi Infinite Loops, Variable yang tidak terpakai, dan masih banyak lagi.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#54-archive&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;54-archive&quot;&gt;5.4 Archive&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita bisa melakukan konfigurasi Persiapan Deployment kita, Xcode Cloud menyediakan 3 opsi, yaitu:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;None&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Testflight (Internal Testing)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Testflight (External Testing) &amp;amp; AppStore&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#6-post-actions&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;6-post-actions&quot;&gt;6. Post Actions&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di menu ini, kita bisa menambahkan sebuah action yang akan dijalankan setelah step Build, Test, Analyze, dan Archive telah berhasil. Contohnya kita ingin melakukan:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Mengirim Notifikasi melalui Email / Slack kepada Team Developer jika proses CI/CD kita gagal.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Membuat aplikasi beta kita tersedia di Testflight (Internal &amp;amp; External Testing).&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengaktifkan &amp;quot;External Testing&amp;quot;, pastikan opsi &amp;quot;Deployment Preparation&amp;quot; di menu Actions -&amp;gt; Archive telah diset menjadi &amp;quot;Testflight &amp;amp; AppStore&amp;quot;&lt;/p&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#7-test-notes&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;7-test-notes&quot;&gt;7. Test Notes&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita bisa menambahkan Test Notes ketika kita mendistribusikan versi beta aplikasi kita dari Xcode Cloud melalui Testflight untuk memberikan detail mengenai perubahan apa saja dari aplikasi kita serta scope yang perlu ditest.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Test Notes yang telah kita buat akan muncul pada bagian &amp;quot;What to test&amp;quot; di aplikasi Testflight. Kita bisa membuat Test Notes untuk lebih dari 1 bahasa dan locale.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa informasi yang dapat kita cantumkan dalam Test Notes:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Fitur yang kita tambahkan dalam aplikasi kita&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Issue atau Bug yang telah kita perbaiki.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Message dari commit terkait dengan perubahan kode kita.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Step untuk membuat Test Notes:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Buka Project atau Workspace di Xcode.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Buat group baru bernama &amp;quot;Testflight&amp;quot; di hirarki terluar project kita.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Buat file baru di dalam group &amp;quot;Testflight&amp;quot; bernama &amp;quot;WhatToTest.[LOCALE].txt&amp;quot;. Untuk [LOCALE], gunakan kode bahasa dan negara yang digunakan dalam konten file tersebut. Contohnya, gunakan &amp;quot;WhatToTest.en-US.txt&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Isi konten dari file tersebut.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Commit dan Push file tersebut ke Remote Repository.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Test Notes&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-xcode-cloud/test-notes.png&quot; alt=&quot;Test Notes&quot; title=&quot;Test Notes&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Test Notes&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada deployment selanjutnya, Xcode Cloud akan secara otomatis mencari file ini, dan menambahkan isi file tersebut pada bagian &amp;quot;What to test&amp;quot; di aplikasi Testflight.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#8-set-next-build-number&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;8-set-next-build-number&quot;&gt;8. Set Next Build Number&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Xcode Cloud menetapkan sebuah build number pada saat proses CI/CD kita berjalan. Build Number adalah sebuah angka yang akan ditambah +1 oleh Xcode Cloud di setiap build.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun, pada saat kita melakukan build aplikasi kita tidak menggunakan Xcode Cloud (contohnya kita melakukan build secara manual), Build Number yang ada di Xcode Cloud tidak lagi sinkron, Jadi kita perlu mengkonfigurasi Build Number yang ada di Xcode Cloud.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah step untuk mengedit Build Number di Xcode Cloud:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Kunjungi website &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://appstoreconnect.apple.com&quot; class=&quot;css-17g8l3v&quot;&gt;App Store Connect&lt;/a&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Klik tab &amp;quot;Xcode Cloud&amp;quot;, kemudian pilih &amp;quot;Settings&amp;quot; di sidebar&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Klik tab Build Number&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Klik tombol &amp;quot;Edit&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Masukkan Build Number selanjutnya, kemudian klik tombol &amp;quot;Save&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Set Build Number&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-xcode-cloud/set-build-number.png&quot; alt=&quot;Set Build Number&quot; title=&quot;Set Build Number&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Set Build Number&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#9-rollback&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;9-rollback&quot;&gt;9. Rollback&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dengan Xcode Cloud, kita bisa melakukan rollback aplikasi kita ke spesifik Build Number dengan sangat mudah!&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Silakan klik menu &amp;quot;Report Navigator&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih tab &amp;quot;Cloud&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih spesifik Build Number yang kita ingin untuk deploy ulang.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Klik tombol &amp;quot;Rebuild&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Maka, Xcode Cloud akan melakukan rebuild dan deploy aplikasi kita berdasarkan Build Number yang kita pilih.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Rollback&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-xcode-cloud/rollback.png&quot; alt=&quot;Rollback&quot; title=&quot;Rollback&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Rollback&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Baca juga:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://blog.alfin.dev/article/ci-cd-aplikasi-ios-dengan-fastlane-dan-github-actions&quot; class=&quot;css-17g8l3v&quot;&gt;CI/CD aplikasi iOS dengan Fastlane dan Github Actions&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://blog.alfin.dev/article/ci-cd-aplikasi-ios-dengan-appcenter&quot; class=&quot;css-17g8l3v&quot;&gt;CI/CD aplikasi iOS dengan AppCenter&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[CI/CD aplikasi iOS dengan AppCenter]]></title><description><![CDATA[Otomatisasi build dan deployment aplikasi iOS ke Testflight.]]></description><link>https://blog.alfin.dev/articleci-cd-aplikasi-ios-dengan-appcenter</link><guid isPermaLink="false">https://blog.alfin.dev/articleci-cd-aplikasi-ios-dengan-appcenter</guid><pubDate>Sun, 31 Dec 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Proses distribusi aplikasi iOS yang kita buat, biasanya memerlukan proses yang cukup panjang, mulai dari melakukan pengujian, code signing, increment build number, melakukan build, menyiapkan screenshot, kemudian yang terakhir kita perlu untuk meng-upload ke Testflight dan AppStore.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengatasi hal tersebut, kita bisa menerapkan CI/CD pada project kita.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-cicd-&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-cicd-&quot;&gt;Apa itu CI/CD ?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;CI/CD merupakan singkatan dari Continuous Integration / Continuous Delivery atau Deployment. CI/CD dapat membantu kita dalam membuat otomatisasi proses distribusi aplikasi.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, ketika kita melakukan perubahan kode pada Git Repository, proses distribusi aplikasi akan berjalan secara otomatis.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sehingga kita bisa lebih fokus dalam mengembangkan aplikasi daripada menghabiskan waktu untuk melakukan hal-hal yang repetitif seperti distribusi aplikasi.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#manfaat-cicd&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;manfaat-cicd&quot;&gt;Manfaat CI/CD&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa manfaat yang akan kita dapatkan apabila kita menerapkan CI/CD:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Lebih hemat waktu&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Karena semua proses distribusi aplikasi dilakukan secara otomatis di cloud, maka kita akan punya lebih banyak waktu untuk melakukan hal-hal lain seperti mengembangkan fitur baru atau melakukan bug fixing.&lt;/p&gt;&lt;ol start=&quot;2&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Mempercepat distribusi aplikasi&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Proses distribusi aplikasi juga akan menjadi lebih cepat karena tiap kali kita melakukan perubahan kode, maka proses distribusi akan dilakukan secara otomatis tanpa perlu khawatir ada step yang terlewat.&lt;/p&gt;&lt;ol start=&quot;3&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Mendeteksi bug lebih cepat&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita menerapkan Unit Testing pada aplikasi kita, mungkin kita bisa menambahkan proses Testing pada pipeline CI yang kita buat. Sehingga apabila ada bug akan terdeteksi lebih cepat pada saat deployment, dan apabila ada bug maka kita perlu melakukan fixing agar pipeline CI yang kita buat bisa berjalan.&lt;/p&gt;&lt;ol start=&quot;4&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Siapa saja bisa melakukan distribusi aplikasi&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Bayangkan jika dalam 1 team, hanya satu orang saja yang mengerti dan mempunyai provisioning profile untuk melakukan deployment. Lalu pada suatu hari seseorang tersebut sedang cuti, dan kebetulan ada kebutuhan untuk mendistribusikan aplikasi. 😅&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah, dengan menerapkan CI/CD, semua orang dalam team bisa melakukan distribusi dan tidak terlalu bergantung dengan satu atau beberapa orang saja.&lt;/p&gt;&lt;ol start=&quot;5&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Menghindari Human Error&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita melakukan deployment secara manual, ada step-step yang bisa jadi kita terlewat atau melakukan kesalahan, misalnya kita ingin build untuk environment Staging tapi yang kita build malah untuk environment Development, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#tools-cicd&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;tools-cicd&quot;&gt;Tools CI/CD&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ada beberapa tools yang bisa kita gunakan untuk membuat CI/CD. Seperti AppCenter, Fastlane, Codemagic, Jenkins, CircleCI, Travis CI, Github Actions, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun pada tutorial kali ini, kita akan menggunakan AppCenter. Alasannya karena AppCenter menyediakan layanan untuk membuat CI/CD secara gratis. 🥳&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Selain itu, AppCenter juga menyediakan Graphical User Interface (GUI) untuk melakukan CI/CD, sehingga kita tidak perlu menuliskan script CI.&lt;/p&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; AppCenter gratis selama kita menghabiskan kurang dari 240 menit build time per bulan.&lt;/p&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-register-ke-appcenter&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;1-register-ke-appcenter&quot;&gt;1. Register ke AppCenter&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika sebelumnya kamu belum pernah melakukan registrasi AppCenter, Silakan buka &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://appcenter.ms/create-account&quot; class=&quot;css-17g8l3v&quot;&gt;https://appcenter.ms/create-account&lt;/a&gt; dan buatlah akun baru.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-add-new-app&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;2-add-new-app&quot;&gt;2. Add new App&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Klik button &amp;quot;Add New&amp;quot; di sebelah kanan, kemudian isi nama aplikasi dan tipe rilis.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pilih OS &amp;quot;iOS&amp;quot;, dan platform &amp;quot;Objective-C / Swift&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Add new App&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-appcenter/add-new-app.png&quot; alt=&quot;Add new App&quot; title=&quot;Add new App&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Add new App&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-hubungkan-repository&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;3-hubungkan-repository&quot;&gt;3. Hubungkan Repository&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika sudah membuat aplikasi di AppCenter, selanjutnya kita akan menghubungkan ke Repository di mana source code aplikasi tersebut berada.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan klik menu &amp;quot;Build&amp;quot;, pilih service git, dan pilih repositorynya.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-konfigurasi-build&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;4-konfigurasi-build&quot;&gt;4. Konfigurasi Build&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada menu &amp;quot;Build&amp;quot;, silakan klik menu &amp;quot;Config&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Build Configuration&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-appcenter/build-configuration.png&quot; alt=&quot;Build Configuration&quot; title=&quot;Build Configuration&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Build Configuration&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa konfigurasi build yang bisa kita lakukan di AppCenter:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#build-scripts&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;build-scripts&quot;&gt;Build Scripts&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Build Script digunakan jika kita ingin menjalankan command terkait dengan build project. Contohnya adalah kalau kita menggunakan &lt;strong&gt;Cocoapods&lt;/strong&gt; sebagai &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Dependency Manager&lt;/span&gt;, maka kita perlu menjalankan command &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;pod install&lt;/span&gt; terlebih dahulu, nah kita bisa memasukkan command-command tersebut ke dalam Build Scripts.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kamu bisa mempelajari Build Scripts lebih lanjut di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://learn.microsoft.com/en-us/appcenter/build/custom/scripts&quot; class=&quot;css-17g8l3v&quot;&gt;https://learn.microsoft.com/en-us/appcenter/build/custom/scripts&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#build-frequency&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;build-frequency&quot;&gt;Build Frequency&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di menu ini, kita bisa menentukan apakah kita ingin melakukan build tiap kali kita melakukan perubahan code di git atau kita trigger secara manual.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#auto-increment-build-number&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;auto-increment-build-number&quot;&gt;Auto Increment Build Number&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar kita tidak perlu menaikkan build number tiap kali ingin build aplikasi, kita bisa mengaktifkan fitur &amp;quot;Automatically increment build number&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita juga bisa menentukan formatnya, apakah ingin Build ID (Number) atau Timestamp.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#sign-builds&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;sign-builds&quot;&gt;Sign Builds&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar kita bisa melakukan distribusi ke Testflight atau ke AppStore, kita perlu mengaktifkan &amp;quot;Sign Build&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah diaktifkan kita diminta untuk memberikan 2 file berikut:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Provisioning Profile (.mobileprovision)&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Certificate (.p12)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Sign Builds&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-appcenter/sign-builds.png&quot; alt=&quot;Sign Builds&quot; title=&quot;Sign Builds&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Sign Builds&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#certificate-signing-request-csr&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;certificate-signing-request-csr&quot;&gt;Certificate Signing Request (CSR)&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mendapatkan file Certificate (.p12), kita perlu membuat Certificate Signing Request (CSR) terlebih dahulu.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;File CSR mempunyai format .certSigningRequest&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka aplikasi &amp;quot;Keychain Access&amp;quot;.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pilih menu Keychain Access &amp;gt; Certificate Assistant &amp;gt; Request a Certificate from a Certificate Authority.
&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;CSR&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-appcenter/keychain-menu.png&quot; alt=&quot;CSR&quot; title=&quot;CSR&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;CSR&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah itu akan muncul dialog &amp;quot;Certificate Assistant&amp;quot;, isi &amp;quot;Email Address&amp;quot;, Common Name (Key untuk Certificate kita), CA Email Address biarkan kosong, dan &amp;quot;Request is&amp;quot; pilih &amp;quot;Saved to disk&amp;quot;.
&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Certificate Assistant&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-appcenter/certificate-assistant.png&quot; alt=&quot;Certificate Assistant&quot; title=&quot;Certificate Assistant&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Certificate Assistant&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#certificate&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;certificate&quot;&gt;Certificate&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mendapatkan file Provisioning Profile, kita perlu membuat Certificate terlebih dahulu.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.apple.com/account&quot; class=&quot;css-17g8l3v&quot;&gt;https://developer.apple.com/account&lt;/a&gt; kemudian pilih menu &amp;quot;Certificates&amp;quot;&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Buat Certificate baru. Pada section &amp;quot;Software&amp;quot;, pilih &amp;quot;Apple Distribution&amp;quot;. klik &amp;quot;Continue&amp;quot;.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Selanjutnya kita akan diminta untuk memberikan file Certificate Signing Request (CSR). Silakan upload file CSR yang telah kita buat tadi.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terakhir klik &amp;quot;Continue&amp;quot;, dan download certificate nya. maka file .cer akan terdownload. Nah, tapi yang dibutuhkan oleh AppCenter adalah file .p12 bukan .cer&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mendapatkan file .p12, silakan klik 2x file .cer yang baru saja kita download, maka aplikasi &amp;quot;Keychain Access&amp;quot; akan terbuka. Pilih certificate kita -&amp;gt; klik kanan -&amp;gt; Export. Maka file .p12 akan terdownload.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#provisioning-profile&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;provisioning-profile&quot;&gt;Provisioning Profile&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk membuat file Provisioning Profile (.mobileprovision) Silakan buka &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.apple.com/account&quot; class=&quot;css-17g8l3v&quot;&gt;https://developer.apple.com/account&lt;/a&gt; kemudian klik menu &amp;quot;Profiles&amp;quot;&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Tambahkan &amp;quot;Profile&amp;quot; baru&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pada section &amp;quot;Distribution&amp;quot; pilih &amp;quot;App Store&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih &amp;quot;App ID&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih certificate yang telah kita buat tadi&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Masukkan nama provisioning profile, misalnya &amp;quot;DemoAppCenter Distribution&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Klik &amp;quot;Generate&amp;quot; -&amp;gt; &amp;quot;Download&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#distribute-builds&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;distribute-builds&quot;&gt;Distribute Builds&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di AppCenter ada 2 metode untuk melakukan distribusi, yaitu Group (Distribution Tools milik AppCenter) dan Store (ke AppStore Connect).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan pilih &amp;quot;Store&amp;quot; dan hubungkan ke akun AppStore Connect kita. Selanjutnya kita akan diminta untuk memberikan API Key dari AppStore Connect.&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Buka &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://appstoreconnect.apple.com/access/users&quot; class=&quot;css-17g8l3v&quot;&gt;https://appstoreconnect.apple.com/access/users&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih menu &amp;quot;Keys&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Klik button &amp;quot;+&amp;quot; untuk menambahkan key baru&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Setelah menambahkan key baru, silakan klik &amp;quot;Download&amp;quot;, maka file .p8 akan terdownload.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan upload file .p8 yang telah kita download, masukkan Key Name, Issuer ID, dan Key ID. Kamu bisa melihat ketiga informasi tersebut di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://appstoreconnect.apple.com/access/api&quot; class=&quot;css-17g8l3v&quot;&gt;https://appstoreconnect.apple.com/access/api&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah berhasil, silakan kembali ke menu &amp;quot;Build&amp;quot; pada AppCenter. Lalu di bagian Build Configuration -&amp;gt; Distribute Build -&amp;gt; Store -&amp;gt; Pilih &amp;quot;App Store Connect Users&amp;quot; -&amp;gt; Save.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#5-trigger-build&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;5-trigger-build&quot;&gt;5. Trigger Build&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang tiap kali kita melakukan perubahan code di repository, secara otomatis AppCenter akan melakukan build dan distribusi aplikasi ke Testflight!&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengujinya, silakan lakukan perubahan code dan push ke remote repository.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;AppCenter Build&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-appcenter/appcenter-build.png&quot; alt=&quot;AppCenter Build&quot; title=&quot;AppCenter Build&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;AppCenter Build&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;
&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Testflight&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-appcenter/testflight.png&quot; alt=&quot;Testflight&quot; title=&quot;Testflight&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Testflight&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#troubleshooting&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;troubleshooting&quot;&gt;Troubleshooting&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Apabila kamu menemukan error seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;error: requires a provisioning profile. Select a provisioning profile in the Signing &amp;amp; Capabilities editor.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;** ARCHIVE FAILED **&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Silakan buka projectmu melalui &amp;quot;Xcode&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Klik Target -&amp;gt; Signing &amp;amp; Capabilities -&amp;gt; Release -&amp;gt; Uncheck &amp;quot;Automatically manage signing&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih Provisioning Profile yang sama dengan yang ada di AppCenter.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Baca juga:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://blog.alfin.dev/article/ci-cd-aplikasi-ios-dengan-fastlane-dan-github-actions&quot; class=&quot;css-17g8l3v&quot;&gt;CI/CD aplikasi iOS dengan Fastlane dan Github Actions&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://blog.alfin.dev/article/ci-cd-aplikasi-ios-dengan-xcode-cloud&quot; class=&quot;css-17g8l3v&quot;&gt;CI/CD aplikasi iOS dengan Xcode Cloud&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Kotlin DSL]]></title><description><![CDATA[Membuat custom Domain Specific Language (DSL) pada Kotlin.]]></description><link>https://blog.alfin.dev/articlekotlin-dsl</link><guid isPermaLink="false">https://blog.alfin.dev/articlekotlin-dsl</guid><pubDate>Tue, 28 Nov 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css u8209z&quot;&gt;.css-u8209z{padding-left:48px;padding-right:48px;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-u8209z&quot;&gt;&lt;style data-emotion=&quot;css z77zqz&quot;&gt;.css-z77zqz{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:500;font-size:1.25rem;line-height:1.6;color:rgba(0,0,0,0.5);font-size:16px;text-indent:-0.45em;}.css-z77zqz::before{content:open-quote;}.css-z77zqz::after{content:close-quote;}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-z77zqz&quot;&gt;Any fool can write code that a computer can understand. Good programmers write code that humans can understand.&lt;/h6&gt;&lt;style data-emotion=&quot;css 18k19ow&quot;&gt;.css-18k19ow{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.75;color:rgba(0,0,0,0.25);}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-subtitle1 css-18k19ow&quot;&gt;Martin Fowler&lt;/h6&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Salah satu alasan mengapa bahasa Kotlin menjadi populer dan banyak disukai oleh para developer adalah karena syntax-nya yang ringkas dan mudah dimengerti.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menulis kode yang lebih ringkas, Kotlin memungkinkan kita untuk membuat Domain Specific Language atau &lt;strong&gt;DSL&lt;/strong&gt;!&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-dsl-&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-dsl-&quot;&gt;Apa itu DSL ?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;DSL&lt;/strong&gt; (Domain Specific Language) merupakan bahasa / syntax yang didesain khusus untuk bagian spesifik dari program kita. Kebalikan dari &lt;strong&gt;DSL&lt;/strong&gt; adalah &lt;strong&gt;GPL&lt;/strong&gt; (General Purpose Language) yaitu bahasa yang bisa digunakan untuk banyak bagian dari program kita, Contoh dari &lt;strong&gt;GPL&lt;/strong&gt; adalah bahasa pemrograman Kotlin, Swift, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Karena &lt;strong&gt;DSL&lt;/strong&gt; didesain khusus untuk bagian tertentu dari program kita serta scope-nya lebih terfokus, maka hasil dari &lt;strong&gt;DSL&lt;/strong&gt; yang kita buat akan jadi lebih ringkas &amp;amp; mudah untuk dibaca. Sehingga orang lain yang tidak mengerti detail implementasi dari kode kita pun tetap bisa memahami makna dari kode yang kita tulis.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Kotlin DSL&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/kotlin-dsl/kotlin-dsl-meme.png&quot; alt=&quot;Kotlin DSL&quot; title=&quot;Kotlin DSL&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Kotlin DSL&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#contoh-dsl&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;contoh-dsl&quot;&gt;Contoh DSL&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh dari Domain Specific Language &lt;strong&gt;DSL&lt;/strong&gt; pada Kotlin:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#gradle-dsl&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;gradle-dsl&quot;&gt;Gradle DSL&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Salah satu contoh &lt;strong&gt;DSL&lt;/strong&gt; yang paling populer adalah konfigurasi Gradle.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;plugins &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;org.jetbrains.kotlin.jvm&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; version &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;1.8.20&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;repositories &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;mavenCentral&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;dependencies &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;implementation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;org.jetbrains.kotlinx:kotlinx-coroutines-core:1.7.3&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;testImplementation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;org.jetbrains.kotlin:kotlin-test-junit5&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#koin-dsl&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;koin-dsl&quot;&gt;Koin DSL&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Atau jika kamu pernah menggunakan library &lt;strong&gt;Koin&lt;/strong&gt; untuk melakukan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Dependency Injection&lt;/span&gt;, &lt;strong&gt;Koin&lt;/strong&gt; juga mempunyai &lt;strong&gt;DSL&lt;/strong&gt; sendiri.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; appModule &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; module &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    single &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;Service&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;startKoin &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;logger&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;modules&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;appModule&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#karakteristik-dsl&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;karakteristik-dsl&quot;&gt;Karakteristik DSL&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;DSL mempunyai 2 karakteristik utama yaitu &lt;strong&gt;Context&lt;/strong&gt; dan &lt;strong&gt;Fluency&lt;/strong&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#context&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;context&quot;&gt;Context&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dengan adanya &lt;strong&gt;Context&lt;/strong&gt;, kita tidak perlu lagi menuliskan kode-kode yang repetitif.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Contohnya jika tanpa &lt;strong&gt;Context&lt;/strong&gt;, mungkin kode yang kita tulis akan seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Tanpa Context&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; contact &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;Contact&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;contact&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;email &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;me@alfin.dev&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;contact&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;phone &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;088233104788&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;contact&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;ig &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;alfinsyahruddin&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;myProfile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;contact &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; contact&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun dengan &lt;strong&gt;Context&lt;/strong&gt;, kode kita akan menjadi lebih ringkas:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Dengan Context&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;profile &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  contact &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    email &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;me@alfin.dev&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    phone &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;088233104788&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    ig &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;alfinsyahruddin&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#fluency&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;fluency&quot;&gt;Fluency&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dengan &lt;strong&gt;DSL&lt;/strong&gt;, kita bisa menulis kode layaknya bahasa manusia sehingga kode kita akan lebih mudah untuk dibaca.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Perhatikan 2 kode di bawah ini, manakah menurutmu yang lebih mudah untuk dimengerti ketika pertama kali membaca kode tersebut? 😁&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Regular Kotlin Code&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; dob &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; LocalDate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;2003&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Month&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;FEBRUARY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;DSL&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; dob &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; feb &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;2003&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#internal-vs-external-dsl&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;internal-vs-external-dsl&quot;&gt;Internal vs External DSL&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ketika kita membuat &lt;strong&gt;DSL&lt;/strong&gt; pada General Purpose Language seperti Kotlin, sebenarnya kita sedang membuat &lt;strong&gt;Internal DSL&lt;/strong&gt;, karena kita menggunakan bahasa yang sudah ada (Kotlin). Kelebihannya kita bisa memanfaatkan fitur2 dari bahasa Kotlin tersebut seperti for-loop, Scope Functions, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di samping itu, ada juga &lt;strong&gt;External DSL&lt;/strong&gt;, yaitu ketika kita membuat &lt;strong&gt;DSL&lt;/strong&gt; dengan grammar, lexer, dan parser yang benar-benar baru. Contoh dari &lt;strong&gt;External DSL&lt;/strong&gt; yang paling populer adalah &lt;strong&gt;SQL&lt;/strong&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-custom-dsl&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-custom-dsl&quot;&gt;Membuat Custom DSL&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita akan belajar bagaimana cara membuat custom &lt;strong&gt;DSL&lt;/strong&gt; pada Kotlin! 😃&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita akan mengubah kode berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Regular Kotlin Code&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; myProfile &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;Profile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;myProfile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;name &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Alfin&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;myProfile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;dob &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; LocalDate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;2003&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Month&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;FEBRUARY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; contact &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;Contact&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;contact&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;email &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;me@alfin.dev&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;myProfile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;contact &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; contact&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;myProfile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;TECH - Mobile Engineering&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;myProfile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;TECH - Augmented Reality&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;myProfile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;PHILOSOPHY - Libertarianism&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Menjadi seperti ini, tanpa mengubah struktur datanya:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;DSL&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; myProfile &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; profile &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    name &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Alfin&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    dob &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; feb &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;2003&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    contact &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        email &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;me@alfin.dev&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    interests &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;tech&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Mobile Engineering&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;tech&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Augmented Reality&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;philosophy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Libertarianism&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#data-structure&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;data-structure&quot;&gt;Data Structure&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah struktur data dari class &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Profile&lt;/span&gt; dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Contact&lt;/span&gt; :&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Profile &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; dob&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; LocalDate&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; contact&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Contact&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; mutableListOf&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Contact &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; email&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-lambda-dengan-context-object&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-lambda-dengan-context-object&quot;&gt;1. Lambda dengan Context Object&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar kita bisa menggunakan syntax seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; myProfile &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; profile &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    name &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Alfin&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    contact &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        email &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;me@alfin.dev&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan tambahkan code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;profile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Profile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Unit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Profile &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;Profile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Profile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;contact&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Contact&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Unit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    contact &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;Contact&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Profile.() -&amp;gt; Unit&lt;/span&gt; akan memberikan Context Object dengan tipe data &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Profile&lt;/span&gt; di dalam lambda kita.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; myProfile &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; profile &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// this: Profile&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;apply&lt;/span&gt; merupakan salah satu dari 5 Scope Functions pada Kotlin. Baca juga: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://blog.alfin.dev/article/scope-functions&quot; class=&quot;css-17g8l3v&quot;&gt;Scope Functions&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-infix-function&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-infix-function&quot;&gt;2. Infix Function&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar kita bisa menggunakan syntax seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;dob &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; feb &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;2003&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan tambahkan code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;infix&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;feb&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;year&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; LocalDate &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; LocalDate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;year&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Month&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;FEBRUARY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Infix Function memungkinkan kita untuk memanggil sebuah function tanpa perlu menuliskan tanda titik, kurang buka &amp;amp; kurung tutup.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;10 feb 2003&lt;/span&gt; jika tanpa Infix Function, kita perlu menuliskannya seperti ini: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;10.feb(2003)&lt;/span&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-lambda-dengan-scope&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-lambda-dengan-scope&quot;&gt;3. Lambda dengan Scope&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Daripada kita menulis kode yang repetitif dan meng-hardcode &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;topic&lt;/span&gt; seperti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;TECH&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;PHILOSOPHY&lt;/span&gt; seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;myProfile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;TECH - Mobile Engineering&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;myProfile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;TECH - Augmented Reality&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;myProfile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;PHILOSOPHY - Libertarianism&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita bisa merefactornya menggunakan Lambda dengan custom Scope menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;interests &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// this: InterestScope&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;tech&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Mobile Engineering&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;tech&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Augmented Reality&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;philosophy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Libertarianism&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan tambahkan kode berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Profile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;interests&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; InterestScope&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Unit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;InterestScope&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;interests&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; InterestScope &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; interests&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; List&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;mutableListOf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;tech&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;topic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;TECH - &lt;/span&gt;&lt;span class=&quot;token string interpolation variable&quot; style=&quot;color:rgb(214, 222, 235);font-family:OperatorMono-Medium, monospace&quot;&gt;$topic&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;philosophy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;topic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;PHILOSOPHY - &lt;/span&gt;&lt;span class=&quot;token string interpolation variable&quot; style=&quot;color:rgb(214, 222, 235);font-family:OperatorMono-Medium, monospace&quot;&gt;$topic&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-context-receiver&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-context-receiver&quot;&gt;4. Context Receiver&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;InterestScope&lt;/span&gt; yang baru saja kita buat sebenarnya masih ada issue, yaitu kita bisa menggunakan Scope tersebut di mana pun, bukankah seharusnya kita hanya bisa menggunakan Scope tersebut di dalam lambda &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;profile&lt;/span&gt; saja ?&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengatasi hal tersebut, kita bisa memanfaatkan fitur pada Kotlin bernama &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/Kotlin/KEEP/blob/master/proposals/context-receivers.md&quot; class=&quot;css-17g8l3v&quot;&gt;Context Receiver&lt;/a&gt;, silakan modifikasi kodenya menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; ProfileContext&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Profile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;interests&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; InterestScope&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Unit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;ProfileContext&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;InterestScope&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;interests&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;ProfileContext&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; InterestScope &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; interests&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; List&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;mutableListOf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;tech&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;topic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;TECH - &lt;/span&gt;&lt;span class=&quot;token string interpolation variable&quot; style=&quot;color:rgb(214, 222, 235);font-family:OperatorMono-Medium, monospace&quot;&gt;$topic&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;philosophy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;topic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;PHILOSOPHY - &lt;/span&gt;&lt;span class=&quot;token string interpolation variable&quot; style=&quot;color:rgb(214, 222, 235);font-family:OperatorMono-Medium, monospace&quot;&gt;$topic&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, ketika kita mencoba mengakses &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;InterestScope&lt;/span&gt; dari luar lambda &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;profile&lt;/span&gt;, maka akan muncul error seperti ini:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Context Receiver&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/kotlin-dsl/context-receiver-error.png&quot; alt=&quot;Context Receiver&quot; title=&quot;Context Receiver&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Context Receiver&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;NOTE:&lt;/strong&gt; Pada saat artikel ini ditulis, Context Receiver merupakan fitur yang masih experimental, untuk menggunakannya, silakan tambahkan kode berikut di dalam file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;build.gradle.kts&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;build.gradle.kts&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;tasks&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;withType&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;KotlinCompile&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;java&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;     kotlinOptions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;freeCompilerArgs &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;-Xcontext-receivers&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah kode lengkap dari tutorial ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;App.kt&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;package&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; dev&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;alfin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;kotlincode&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; java&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;LocalDate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; java&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;time&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;Month&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; myProfile &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; profile &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        name &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Alfin&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        dob &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; feb &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;2003&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        contact &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            email &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;me@alfin.dev&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        interests &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;tech&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Mobile Engineering&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;tech&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Augmented Reality&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;philosophy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Libertarianism&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// MARK: - Data Structure&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Profile &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; dob&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; LocalDate&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; contact&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Contact&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; mutableListOf&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Contact &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; email&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;37&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// MARK: - DSL&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;profile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Profile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Unit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Profile &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;41&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;Profile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;43&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;44&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Profile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;contact&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Contact&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Unit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;45&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    contact &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;Contact&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;46&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;47&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;48&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;infix&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;feb&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;year&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; LocalDate &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; LocalDate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;year&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Month&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;FEBRUARY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;this&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;49&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;object&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; ProfileContext&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;51&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;52&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Profile&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;interests&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; InterestScope&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Unit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;53&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;ProfileContext&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;54&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;InterestScope&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;interests&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;55&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;56&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;57&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;58&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;ProfileContext&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;59&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; InterestScope &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; interests&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; List&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;mutableListOf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;61&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;63&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;tech&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;topic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;64&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;TECH - &lt;/span&gt;&lt;span class=&quot;token string interpolation variable&quot; style=&quot;color:rgb(214, 222, 235);font-family:OperatorMono-Medium, monospace&quot;&gt;$topic&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;65&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;66&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;67&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;philosophy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;topic&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;68&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        interests &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;PHILOSOPHY - &lt;/span&gt;&lt;span class=&quot;token string interpolation variable&quot; style=&quot;color:rgb(214, 222, 235);font-family:OperatorMono-Medium, monospace&quot;&gt;$topic&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;69&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;70&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Referensi&lt;/strong&gt;&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=JzTeAM8N1-o&quot; class=&quot;css-17g8l3v&quot;&gt;https://www.youtube.com/watch?v=JzTeAM8N1-o&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=0DJqr4FZ6f0&quot; class=&quot;css-17g8l3v&quot;&gt;https://www.youtube.com/watch?v=0DJqr4FZ6f0&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.kodeco.com/2780058-domain-specific-languages-in-kotlin-getting-started&quot; class=&quot;css-17g8l3v&quot;&gt;https://www.kodeco.com/2780058-domain-specific-languages-in-kotlin-getting-started&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Scope Functions]]></title><description><![CDATA[let, with, run, apply, dan also pada Kotlin.]]></description><link>https://blog.alfin.dev/articlescope-functions</link><guid isPermaLink="false">https://blog.alfin.dev/articlescope-functions</guid><pubDate>Sun, 12 Nov 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-scope-functions&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-scope-functions&quot;&gt;Apa itu Scope Functions?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Scope Functions adalah function-function bawaan dari Kotlin yang bisa kita gunakan untuk mengeksekusi block kode di dalam scope sebuah object. dan di dalam scope tersebut kita bisa mengakses objectnya tanpa perlu menyebutkan namanya secara eksplisit.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Scope function sebenarnya tidak memberikan pengaruh apapun secara behavior, kita bisa saja menulis kode tanpa menggunakan scope function sama sekali. Namun dengan scope function, kode kita akan menjadi lebih ringkas dan mudah untuk dibaca.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di Kotlin, terdapat 5 scope function yaitu &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;let&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;with&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;run&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;apply&lt;/span&gt;, dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;also&lt;/span&gt;. Kelima function tersebut mempunyai banyak kemiripan, sehingga kita kadang sulit untuk membedakannya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Scope Functions&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/scope-functions/scope-functions-meme.png&quot; alt=&quot;Scope Functions&quot; title=&quot;Scope Functions&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Scope Functions&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah, di artikel kali ini kita akan belajar apa saja sih perbedaan dari masing-masing function tersebut serta dalam case seperti apa kita akan menggunakannya.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-karakteristik-scope-functions&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;3-karakteristik-scope-functions&quot;&gt;3 Karakteristik Scope Functions&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar lebih mudah dalam membedakan Scope Functions, kita perlu mengetahui karakteristik-karakteristik nya terlebih dahulu. berikut adalah 3 karakteristik dari Scope Functions:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-cara-pemanggilan&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-cara-pemanggilan&quot;&gt;1. Cara Pemanggilan&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ada 2 jenis pemanggilan Scope Functions, tergantung apakah Scope Functions tersebut merupakan Extension atau bukan.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#extension&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;extension&quot;&gt;Extension&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika Scope Functions tersebut merupakan Extension maka kita panggil dengan dot lalu diikuti nama functionnya. Contohnya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;kotlin&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;it&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah Scope Functions yang merupakan Extension: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;let&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;run&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;apply&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;also&lt;/span&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#bukan-extension&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;bukan-extension&quot;&gt;Bukan Extension&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tapi jika bukan Extension, kita tinggal panggil saja seperti function biasa. Contohnya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; name &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;kotlin&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;length&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;reversed&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah Scope Functions yang bukan merupakan Extension: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;run&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;with&lt;/span&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Khusus Scope Function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;run&lt;/span&gt;, ada 2 cara untuk pemanggilannya, yaitu dengan cara dipanggil langsung atau melalui Extension.&lt;/p&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-context-object&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-context-object&quot;&gt;2. Context Object&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Context Object merupakan object yang tersedia di dalam lambda pada Scope Functions. Kita bisa mengakses object tersebut menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;this&lt;/span&gt; atau &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;it&lt;/span&gt;. Berikut adalah kelebihan dan kekurangan dari kedua cara pengaksesan tersebut:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#this&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;this&quot;&gt;this&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Kelebihan:&lt;/strong&gt; Kita bisa mengakses properti dan method yang terdapat pada object &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;this&lt;/span&gt; secara langsung tanpa perlu menuliskan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;this&lt;/span&gt;.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Kekurangan:&lt;/strong&gt; Karena kita bisa mengakses secara langsung, jadi agak rancu apakah properti dan method yang kita akses itu apakah berasal dari object &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;this&lt;/span&gt; atau berasal dari luar lambda?&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, object reference &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;this&lt;/span&gt; cocok digunakan jika di dalam lambda-nya kebanyakan hanya menggunakan properti &amp;amp; method milik dari object &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;this&lt;/span&gt; saja.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah Scope Functions yang menggunakan object reference &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;this&lt;/span&gt;:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;run&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;with&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;apply&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#it&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;it&quot;&gt;it&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Kelebihan:&lt;/strong&gt; Secara penulisan lebih singkat dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;this&lt;/span&gt;, jadi akan lebih mudah untuk dibaca.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Kekurangan:&lt;/strong&gt; Kita tidak bisa mengakses properti &amp;amp; method yang terdapat pada &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;it&lt;/span&gt; secara langsung.&lt;/p&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, object reference &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;it&lt;/span&gt; cocok digunakan jika di dalam lambda-nya banyak menggunakan properti atau method dari luar Scope Functions.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kamu mau, kamu juga bisa mengubah nama variabel &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;it&lt;/span&gt; menjadi apapun yang kamu inginkan, contohnya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;Random&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nextInt&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;100&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;also&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; randomValue &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;randomValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah Scope Functions yang menggunakan object reference &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;it&lt;/span&gt;:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;let&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;also&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-return-value&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-return-value&quot;&gt;3. Return Value&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita juga perlu memperhatikan apa yang dikembalikan dari Scope Function yang ingin kita pakai, Apakah kita ingin yang dikembalikan adalah Context Object-nya atau hasil dari lambda kita (Lambda Result) ?&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#context-object&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;context-object&quot;&gt;Context Object&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah Scope Functions yang mengembalikan Context Object: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;apply&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;also&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; numberList &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; mutableListOf&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;numberList&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;also&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Sorting the list...&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;sort&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;also&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Sorted! ✅&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;numberList&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// RESULT:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Sorting the list...&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Sorted! ✅&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// [1, 2, 3]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#lambda-result&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;lambda-result&quot;&gt;Lambda Result&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah Scope Functions yang mengembalikan hasil dari lambda kita: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;let&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;run&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;with&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; animals &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;mutableListOf&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;🐥&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;🐒&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;🐥&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; totalDucks &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; animals&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;🐥&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;add&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;🐥&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    count &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; it &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;🐥&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;There are &lt;/span&gt;&lt;span class=&quot;token string interpolation variable&quot; style=&quot;color:rgb(214, 222, 235);font-family:OperatorMono-Medium, monospace&quot;&gt;$totalDucks&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt; ducks.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// RESULT:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// There are 4 ducks.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#scope-functions&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;scope-functions&quot;&gt;Scope Functions&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah mengetahui karakteristik dari Scope Functions, kita akan belajar lebih detail terkait masing-masing dari Scope Functions serta contoh penggunaannya.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-let&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-let&quot;&gt;1. let&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css u8209z&quot;&gt;.css-u8209z{padding-left:48px;padding-right:48px;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-u8209z&quot;&gt;&lt;style data-emotion=&quot;css z77zqz&quot;&gt;.css-z77zqz{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:500;font-size:1.25rem;line-height:1.6;color:rgba(0,0,0,0.5);font-size:16px;text-indent:-0.45em;}.css-z77zqz::before{content:open-quote;}.css-z77zqz::after{content:close-quote;}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-z77zqz&quot;&gt;Let’s do the following stuff with it.&lt;/h6&gt;&lt;style data-emotion=&quot;css 18k19ow&quot;&gt;.css-18k19ow{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.75;color:rgba(0,0,0,0.25);}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-subtitle1 css-18k19ow&quot;&gt;- Kotlin&lt;/h6&gt;&lt;/div&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Extension&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Context Object: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;it&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Return Value: &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Lambda Result&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Scope Function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;let&lt;/span&gt; biasanya digunakan jika kita ingin melakukan sesuatu terhadap sebuah &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;nullable object&lt;/span&gt; (object yang valuenya bisa &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;null&lt;/span&gt;) dan kita ingin menghindari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;NullPointException&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Perhatikan contoh berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;kotlin&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// val total = count(name) // ERROR: Type mismatch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; total &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;it&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;reversed&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;it&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// OK&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Int &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;length&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dengan menggunakan Scope Functions &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;let&lt;/span&gt;, di dalam lambda-nya kita tidak perlu lagi menggunakan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Safe Call Operator&lt;/span&gt; (&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;?.&lt;/span&gt;) tiap kali kita mengakses variabel &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;name&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika di dalam lambda &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;let&lt;/span&gt; hanya memanggil 1 function saja dan function tersebut menerima &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;it&lt;/span&gt; sebagai argumen, kamu bisa menggunakan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;method reference&lt;/span&gt; (&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;::&lt;/span&gt;) untuk memperingkas kode.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; total &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;::&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;fun&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Int &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;string&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;length&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-with&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-with&quot;&gt;2. with&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css u8209z&quot;&gt;.css-u8209z{padding-left:48px;padding-right:48px;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-u8209z&quot;&gt;&lt;style data-emotion=&quot;css z77zqz&quot;&gt;.css-z77zqz{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:500;font-size:1.25rem;line-height:1.6;color:rgba(0,0,0,0.5);font-size:16px;text-indent:-0.45em;}.css-z77zqz::before{content:open-quote;}.css-z77zqz::after{content:close-quote;}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-z77zqz&quot;&gt;With this object, do the following.&lt;/h6&gt;&lt;style data-emotion=&quot;css 18k19ow&quot;&gt;.css-18k19ow{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.75;color:rgba(0,0,0,0.25);}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-subtitle1 css-18k19ow&quot;&gt;- Kotlin&lt;/h6&gt;&lt;/div&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Bukan Extension&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Context Object: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;this&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Return Value: &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Lambda Result&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Scope Function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;with&lt;/span&gt; biasanya digunakan untuk melakukan grouping pemanggilan function pada suatu variabel.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Contoh penggunaannya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; name &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;kotlin&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;The reversed of &lt;/span&gt;&lt;span class=&quot;token string interpolation variable&quot; style=&quot;color:rgb(214, 222, 235);font-family:OperatorMono-Medium, monospace&quot;&gt;$this&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt; is &lt;/span&gt;&lt;span class=&quot;token string interpolation delimiter variable&quot; style=&quot;color:rgb(214, 222, 235);font-family:OperatorMono-Medium, monospace&quot;&gt;${&lt;/span&gt;&lt;span class=&quot;token string interpolation function&quot; style=&quot;color:rgb(130, 170, 255);font-family:OperatorMono-Medium, monospace&quot;&gt;reversed&lt;/span&gt;&lt;span class=&quot;token string interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234);font-family:OperatorMono-Medium, monospace&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234);font-family:OperatorMono-Medium, monospace&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string interpolation delimiter variable&quot; style=&quot;color:rgb(214, 222, 235);font-family:OperatorMono-Medium, monospace&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// RESULT:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// The reversed of kotlin is niltok&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-run&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-run&quot;&gt;3. run&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css u8209z&quot;&gt;.css-u8209z{padding-left:48px;padding-right:48px;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-u8209z&quot;&gt;&lt;style data-emotion=&quot;css z77zqz&quot;&gt;.css-z77zqz{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:500;font-size:1.25rem;line-height:1.6;color:rgba(0,0,0,0.5);font-size:16px;text-indent:-0.45em;}.css-z77zqz::before{content:open-quote;}.css-z77zqz::after{content:close-quote;}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-z77zqz&quot;&gt;Run the code block and return the result.&lt;/h6&gt;&lt;style data-emotion=&quot;css 18k19ow&quot;&gt;.css-18k19ow{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.75;color:rgba(0,0,0,0.25);}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-subtitle1 css-18k19ow&quot;&gt;- Kotlin&lt;/h6&gt;&lt;/div&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Extension &amp;amp; Bukan Extension&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Context Object: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;this&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Return Value: &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Lambda Result&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Scope Function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;run&lt;/span&gt; biasanya digunakan untuk melakukan inisialisasi object.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;run&lt;/span&gt; mempunyai 2 cara untuk pemanggilannya, yaitu dengan cara dipanggil langsung atau melalui Extension.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Contoh penggunaannya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; httpClient &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;HttpClient&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Extension&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; devHttpClient &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; httpClient&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    baseURL &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;http://dev.api.com&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    timeout &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;5000&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Bukan Extension&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; productionHttpClient &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; run &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; baseURL &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;http://backend.com&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; timeout &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;5000&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;HttpClient&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;baseURL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; timeout&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;HttpClient&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; baseURL&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; String&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; timeout&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Int&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;null&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-apply&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-apply&quot;&gt;4. apply&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css u8209z&quot;&gt;.css-u8209z{padding-left:48px;padding-right:48px;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-u8209z&quot;&gt;&lt;style data-emotion=&quot;css z77zqz&quot;&gt;.css-z77zqz{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:500;font-size:1.25rem;line-height:1.6;color:rgba(0,0,0,0.5);font-size:16px;text-indent:-0.45em;}.css-z77zqz::before{content:open-quote;}.css-z77zqz::after{content:close-quote;}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-z77zqz&quot;&gt;Apply the following assignments to the object.&lt;/h6&gt;&lt;style data-emotion=&quot;css 18k19ow&quot;&gt;.css-18k19ow{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.75;color:rgba(0,0,0,0.25);}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-subtitle1 css-18k19ow&quot;&gt;- Kotlin&lt;/h6&gt;&lt;/div&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Extension&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Context Object: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;this&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Return Value: &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Context Object&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Scope Function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;apply&lt;/span&gt; biasanya digunakan untuk melakukan konfigurasi object.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; httpClient &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;HttpClient&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;http://backend.com&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;httpClient&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;apply&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    timeout &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;10_000&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#5-also&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;5-also&quot;&gt;5. also&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css u8209z&quot;&gt;.css-u8209z{padding-left:48px;padding-right:48px;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-u8209z&quot;&gt;&lt;style data-emotion=&quot;css z77zqz&quot;&gt;.css-z77zqz{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:500;font-size:1.25rem;line-height:1.6;color:rgba(0,0,0,0.5);font-size:16px;text-indent:-0.45em;}.css-z77zqz::before{content:open-quote;}.css-z77zqz::after{content:close-quote;}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-z77zqz&quot;&gt;And also do the following with the object.&lt;/h6&gt;&lt;style data-emotion=&quot;css 18k19ow&quot;&gt;.css-18k19ow{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.75;color:rgba(0,0,0,0.25);}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-subtitle1 css-18k19ow&quot;&gt;- Kotlin&lt;/h6&gt;&lt;/div&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Extension&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Context Object: &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;it&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Return Value: &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Context Object&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Scope Function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;also&lt;/span&gt; biasanya digunakan untuk melakukan suatu action ketika sebuah object telah diinisialisasi. Misalnya seperti logging, tracker, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh penggunaannya:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/kotlin.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-kotlin css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;val&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; numberList &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; mutableListOf&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;numberList&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;also&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Sorting the list...&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;sort&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;also&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Sorted! ✅&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;println&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;numberList&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// RESULT:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Sorting the list...&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Sorted! ✅&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// [1, 2, 3]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#tabel-scope-functions&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;tabel-scope-functions&quot;&gt;Tabel Scope Functions&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar lebih mudah dalam mengingat dan memahami perbedaan dari masing-masing Scope Functions, kamu bisa mengacu pada tabel berikut:&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Scope Function&lt;/th&gt;&lt;th&gt;Object Reference&lt;/th&gt;&lt;th&gt;Return Value&lt;/th&gt;&lt;th&gt;Apakah Extension?&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;let&lt;/span&gt;&lt;/td&gt;&lt;td&gt;it&lt;/td&gt;&lt;td&gt;Lambda Result&lt;/td&gt;&lt;td&gt;Ya&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;with&lt;/span&gt;&lt;/td&gt;&lt;td&gt;this&lt;/td&gt;&lt;td&gt;Lambda Result&lt;/td&gt;&lt;td&gt;Bukan Extension&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;run&lt;/span&gt;&lt;/td&gt;&lt;td&gt;this&lt;/td&gt;&lt;td&gt;Lambda Result&lt;/td&gt;&lt;td&gt;Ya&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;run&lt;/span&gt;&lt;/td&gt;&lt;td&gt;-&lt;/td&gt;&lt;td&gt;Lambda Result&lt;/td&gt;&lt;td&gt;Bukan Extension&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;apply&lt;/span&gt;&lt;/td&gt;&lt;td&gt;this&lt;/td&gt;&lt;td&gt;Context Object&lt;/td&gt;&lt;td&gt;Ya&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;also&lt;/span&gt;&lt;/td&gt;&lt;td&gt;it&lt;/td&gt;&lt;td&gt;Context Object&lt;/td&gt;&lt;td&gt;Ya&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[CI/CD aplikasi iOS dengan Fastlane dan Github Actions]]></title><description><![CDATA[Otomatisasi build, testing, screenshot, dan deployment aplikasi iOS ke Testflight & AppStore.]]></description><link>https://blog.alfin.dev/articleci-cd-aplikasi-ios-dengan-fastlane-dan-github-actions</link><guid isPermaLink="false">https://blog.alfin.dev/articleci-cd-aplikasi-ios-dengan-fastlane-dan-github-actions</guid><pubDate>Sun, 24 Sep 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Proses distribusi aplikasi iOS yang kita buat, biasanya memerlukan proses yang cukup panjang, mulai dari melakukan pengujian, code signing, increment build number, melakukan build, menyiapkan screenshot, kemudian yang terakhir kita perlu untuk meng-upload ke Testflight dan AppStore.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengatasi hal tersebut, kita bisa menerapkan CI/CD pada project kita.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-cicd-&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-cicd-&quot;&gt;Apa itu CI/CD ?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;CI/CD merupakan singkatan dari Continuous Integration / Continuous Delivery atau Deployment. CI/CD dapat membantu kita dalam membuat otomatisasi proses distribusi aplikasi.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, ketika kita melakukan perubahan kode pada Git Repository, proses distribusi aplikasi akan berjalan secara otomatis.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sehingga kita bisa lebih fokus dalam mengembangkan aplikasi daripada menghabiskan waktu untuk melakukan hal-hal yang repetitif seperti distribusi aplikasi.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#manfaat-cicd&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;manfaat-cicd&quot;&gt;Manfaat CI/CD&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa manfaat yang akan kita dapatkan apabila kita menerapkan CI/CD:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Lebih hemat waktu&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Karena semua proses distribusi aplikasi dilakukan secara otomatis di cloud, maka kita akan punya lebih banyak waktu untuk melakukan hal-hal lain seperti mengembangkan fitur baru atau melakukan bug fixing.&lt;/p&gt;&lt;ol start=&quot;2&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Mempercepat distribusi aplikasi&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Proses distribusi aplikasi juga akan menjadi lebih cepat karena tiap kali kita melakukan perubahan kode, maka proses distribusi akan dilakukan secara otomatis tanpa perlu khawatir ada step yang terlewat.&lt;/p&gt;&lt;ol start=&quot;3&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Mendeteksi bug lebih cepat&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita menerapkan Unit Testing pada aplikasi kita, mungkin kita bisa menambahkan proses Testing pada pipeline CI yang kita buat. Sehingga apabila ada bug akan terdeteksi lebih cepat pada saat deployment, dan apabila ada bug maka kita perlu melakukan fixing agar pipeline CI yang kita buat bisa berjalan.&lt;/p&gt;&lt;ol start=&quot;4&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Siapa saja bisa melakukan distribusi aplikasi&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Bayangkan jika dalam 1 team, hanya satu orang saja yang mengerti dan mempunyai provisioning profile untuk melakukan deployment. Lalu pada suatu hari seseorang tersebut sedang cuti, dan kebetulan ada kebutuhan untuk mendistribusikan aplikasi. 😅&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah, dengan menerapkan CI/CD, semua orang dalam team bisa melakukan distribusi dan tidak terlalu bergantung dengan satu atau beberapa orang saja.&lt;/p&gt;&lt;ol start=&quot;5&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Menghindari Human Error&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita melakukan deployment secara manual, ada step-step yang bisa jadi kita terlewat atau melakukan kesalahan, misalnya kita ingin build untuk environment Staging tapi yang kita build malah untuk environment Development, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#tools-cicd&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;tools-cicd&quot;&gt;Tools CI/CD&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ada beberapa tools yang bisa kita gunakan untuk membuat CI/CD. Seperti Fastlane, Codemagic, Jenkins, CircleCI, Travis CI, Github Actions, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun pada tutorial kali ini, kita akan menggunakan Fastlane dan Github Actions. Alasannya karena mereka menyediakan layanan untuk membuat CI/CD secara gratis. 🥳&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Fastlane kita gunakan untuk membuat pipeline otomatisasi build, testing, screenshot, dan upload ke Testflight &amp;amp; AppStore.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sedangkan Github Actions kita gunakan sebagai server untuk menjalankan pipeline tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#instalasi-fastlane&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;instalasi-fastlane&quot;&gt;Instalasi Fastlane&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebelum kita mengintegrasikannya ke Github Actions, kita perlu menginstal dulu Fastlane di local komputer kita untuk melakukan pengujian apakah pipeline yang kita buat sudah sesuai atau belum.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan jalankan beberapa command berikut di Terminal:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Xcode command line tools&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;xcode-select --install&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;ol start=&quot;2&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Brew&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;/bin/bash -c &amp;quot;$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;ol start=&quot;2&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Fastlane&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;brew install fastlane&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika sudah, pastikan Fastlane sudah terinstall di komputer kita dengan cara:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;$ fastlane --version&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane installation at path:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;/opt/homebrew/Cellar/fastlane/2.214.0/libexec/gems/fastlane-2.216.0/bin/fastlane&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;-----------------------------&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;[✔] 🚀&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane 2.216.0&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#setup-fastlane&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;setup-fastlane&quot;&gt;Setup Fastlane&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengikuti tutorial ini, silakan download starter project nya di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/alfinsyahruddin/Fasthub/tree/starter&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/alfinsyahruddin/Fasthub/tree/starter&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Fasthub App&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-fastlane-dan-github-actions/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvMjhWM1JRVGsvU2ltdWxhdG9yLVNjcmVlbnNob3QtaS1QaG9uZS0xMS1Qcm8tMjAyMy0wOS0yNC1hdC0xNC0yNi01Mi5wbmc.png&quot; alt=&quot;Fasthub App&quot; title=&quot;Fasthub App&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Fasthub App&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Selanjutnya, buka Terminal dan navigasi ke folder &amp;quot;Fasthub&amp;quot;, lalu jalankan command berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane init&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ketika muncul prompt seperti di bawah ini, pilih no 4 karena kita akan setup fastlane pada project kita secara manual.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;fastlane init&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-fastlane-dan-github-actions/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvR3BobUt2Qm4vU2NyZWVuc2hvdC0yMDIzLTA5LTI0LWF0LTE0LTQ3LTAzLnBuZw.png&quot; alt=&quot;fastlane init&quot; title=&quot;fastlane init&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;fastlane init&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika sudah, maka akan ter-generate sebuah folder &amp;quot;fastlane&amp;quot; yang berisi Appfile dan Fastfile.&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Appfile adalah sebuah file konfigurasi project untuk distribusi ke AppStore, seperi identifier aplikasi, Apple ID, Team Name, dll.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Fastfile adalah file yang berisi lane atau command yang bisa kita pakai untuk melakukan sesuatu, sontohnya lane untuk build IPA, lane untuk mengambil screenshot, dll.&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#otomatisasi-testing&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;otomatisasi-testing&quot;&gt;Otomatisasi Testing&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita akan membuat &amp;quot;lane&amp;quot; pertama kita bernama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;test&lt;/span&gt;, yaitu untuk menjalankan Unit Tests pada aplikasi Fasthub.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka file Fastfile dan replace isinya menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-ruby css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;default_platform(:ios)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;platform :ios do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  desc &amp;quot;Run Unit Tests&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  lane :test do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    scan(scheme: &amp;quot;FasthubTests&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menjalankan &amp;quot;lane&amp;quot; yang kita buat, caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane test&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Hasil Testing&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-fastlane-dan-github-actions/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvR3BRcXduaHMvU2NyZWVuc2hvdC0yMDIzLTA5LTI0LWF0LTE1LTA1LTI3LnBuZw.png&quot; alt=&quot;Hasil Testing&quot; title=&quot;Hasil Testing&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Hasil Testing&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#otomatisasi-screenshot&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;otomatisasi-screenshot&quot;&gt;Otomatisasi Screenshot&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Fastlane mempunyai fitur untuk mengambil screenshot aplikasi kita secara programmatic, kita juga bisa mengatur jenis device, bahasa, tema gelap/terang, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan jalankan command berikut di Terminal:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane snapshot init&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Command di atas akan meng-generate 2 buah file, yaitu:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-snapshot&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-snapshot&quot;&gt;1. Snapshot&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Snapshot merupakan sebuah file konfigurasi screenshot, seperti konfigurasi jenis device, bahasa, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan replace isi dari file Snapshot, menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;devices([&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &amp;quot;iPhone SE (3rd generation)&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;languages([&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &amp;#x27;en-US&amp;#x27;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;])&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;dark_mode(true)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;scheme(&amp;quot;FasthubUITests&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;output_directory &amp;quot;./fastlane/screenshots&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;clear_previous_screenshots(true)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-snapshothelperswift&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-snapshothelperswift&quot;&gt;2. SnapshotHelper.swift&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;File yang berisi code swift untuk mengambil screenshot.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan drag &amp;amp; drop file tersebut ke dalam target &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;FasthubUITests&lt;/span&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;SnapshotHelper.swift&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-fastlane-dan-github-actions/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvSHhrS3B0TmsvU2NyZWVuc2hvdC0yMDIzLTA5LTI0LWF0LTE4LTE5LTEwLnBuZw.png&quot; alt=&quot;SnapshotHelper.swift&quot; title=&quot;SnapshotHelper.swift&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;SnapshotHelper.swift&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian buka file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;FasthubUITests.swift&lt;/span&gt; dan replace isi dari function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;testExample&lt;/span&gt; menjadi dengan code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;func testExample() throws {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    let app = XCUIApplication()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    setupSnapshot(app)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    app.launch()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    snapshot(&amp;quot;HOME_PAGE&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengambil screenshot, kita bisa menggunakan function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;snapshot&lt;/span&gt; yang berasal dari file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;SnapshotHelper.swift&lt;/span&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terakhir, tambahkan lane &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;screenshot&lt;/span&gt; pada file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Fastfile&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;default_platform(:ios)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;platform :ios do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  desc &amp;quot;Run Unit Tests&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  lane :test do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    scan(scheme: &amp;quot;FasthubTests&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  desc &amp;quot;Take screenshots&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  lane :screenshot do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    snapshot&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menjalankan lane &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;screenshot&lt;/span&gt; yang telah kita buat, caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane screenshot&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#otomatisasi-build-ipa&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;otomatisasi-build-ipa&quot;&gt;Otomatisasi Build IPA&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Building aplikasi untuk diupload ke AppStore seringkali memakan banyak waktu, untungnya Fastlane mempunyai fitur untuk build IPA secara otomatis bernama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;gym&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jalankan command berikut di Terminal:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane gym init&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Command di atas akan meng-generate sebuah file konfigurasi build bernama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Gymfile&lt;/span&gt;, silakan replace isinya menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;scheme(&amp;quot;Fasthub&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;output_directory(&amp;quot;./fastlane/builds&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;export_xcargs(&amp;quot;-allowProvisioningUpdates&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dalam file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Gymfile&lt;/span&gt; di atas, kita tentukan scheme aplikasi kita, path output hasil build, dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;-allowProvisioningUpdates&lt;/span&gt; untuk melakukan provisioning secara otomatis.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terakhir, tambahkan &amp;quot;lane&amp;quot; baru bernama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;build&lt;/span&gt; pada file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Fastfile&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;desc &amp;quot;Create IPA&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;lane :build do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  enable_automatic_code_signing&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  increment_build_number&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  gym&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk melakukan build, kamu bisa menjalankan command berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane build&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Hasil Build&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-fastlane-dan-github-actions/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvUlp6clB4MHovU2NyZWVuc2hvdC0yMDIzLTA5LTI0LWF0LTE5LTA2LTE0LnBuZw.png&quot; alt=&quot;Hasil Build&quot; title=&quot;Hasil Build&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Hasil Build&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-aplikasi-di-appstore-connect&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-aplikasi-di-appstore-connect&quot;&gt;Membuat aplikasi di AppStore Connect&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebelum kita upload file IPA yang hasil build ke Testflight dan AppStore, kita perlu untuk membuat aplikasi baru di AppStore Connect terlebih dahulu.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun kita tidak akan membuatnya dari website AppStore Connect, tetapi melalui action &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;produce&lt;/span&gt; yang disediakan oleh Fastlane.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Replace isi dari file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Appfile&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-Appfile css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;app_identifier(&amp;quot;dev.alfin.Fasthub&amp;quot;) # The bundle identifier of your app&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;apple_id(&amp;quot;alfin.syahruddin@icloud.com&amp;quot;) # Your Apple Developer Portal username&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;team_name(&amp;quot;MUHAMMAD ALFIN SYAHRUDDIN&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;dan buat file .env di dalam folder &amp;quot;fastlane&amp;quot;, isinya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-.env css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;FASTLANE_USER=alfin.syahruddin@icloud.com&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;FASTLANE_PASSWORD=XXXXXXXXX&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;FASTLANE_APPLE_APPLICATION_SPECIFIC_PASSWORD=xxx-xxx-xxx-xxx&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;FASTLANE_ITC_TEAM_NAME=MUHAMMAD ALFIN SYAHRUDDIN&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sesuaikan isinya dengan credential milikmu. Untuk meng-generate App-Specific Password, kamu bisa mengikuti langkah dari website berikut: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://support.apple.com/en-us/102654&quot; class=&quot;css-17g8l3v&quot;&gt;https://support.apple.com/en-us/102654&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terakhir, Silakan tambahkan lane &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;create_app&lt;/span&gt; di file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Fastfile&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-Fastfile css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;desc &amp;quot;Create app on Apple Developer and App Store Connect sites&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;lane :create_app do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    produce&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menggunakan &amp;quot;lane&amp;quot; yang baru saja kita buat, caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane create_app&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#otomatisasi-upload-ke-testflight&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;otomatisasi-upload-ke-testflight&quot;&gt;Otomatisasi upload ke Testflight&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tambahkan code berikut pada file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;fastfile&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;desc &amp;quot;Upload to TestFlight&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;lane :upload_testflight do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  upload_to_testflight(&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    ipa: &amp;quot;./fastlane/builds/Fasthub.ipa&amp;quot;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    skip_waiting_for_build_processing: true,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    uses_non_exempt_encryption: true&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  )&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;dan untuk menggunakannya, caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane upload_testflight&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Testflight&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-fastlane-dan-github-actions/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvWHFraEhaWlQvU2NyZWVuc2hvdC0yMDIzLTA5LTI0LWF0LTIwLTEzLTE2LnBuZw.png&quot; alt=&quot;Testflight&quot; title=&quot;Testflight&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Testflight&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#otomatisasi-upload-ke-appstore&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;otomatisasi-upload-ke-appstore&quot;&gt;Otomatisasi upload ke AppStore&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pertama, silakan jalankan command berikut di Terminal:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane deliver init&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Command di atas akan menghasilkan sebuah file bernama &amp;quot;Deliverfile&amp;quot;, yang berisi konfigurasi-konfigurasi AppStore. Silakan replace isi dari file tersebut dengan kode berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;price_tier(0)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;submission_information({&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    export_compliance_encryption_updated: false,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    export_compliance_uses_encryption: false,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    content_rights_contains_third_party_content: false,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    add_id_info_uses_idfa: false&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;})&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;app_rating_config_path(&amp;quot;./fastlane/metadata/app_store_rating_config.json&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;ipa(&amp;quot;./fastlane/builds/Fasthub.ipa&amp;quot;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;submit_for_review(true)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;automatic_release(false)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;force(true)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita set &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;price_tier(0)&lt;/span&gt; karena aplikasi kita free. dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;automatic_release(false)&lt;/span&gt; agar kita bisa me-release secara manual apabila aplikasi kita sudah diaccept review-nya oleh Apple (kamu bisa mengesetnya menjadi true jika kamu mau).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Selain menghasilkan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Deliverfile&lt;/span&gt;, command di atas juga akan meng-generate sebuah folder bernama &amp;quot;metadata&amp;quot; yang berisi informasi-informasi yang perlu kita isi untuk keperluan distribusi ke AppStore, misalnya seperti deskripsi aplikasi, kategori, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-description&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-description&quot;&gt;1. Description&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ubah isi dari file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;fastline/metadata/en-US/description.txt&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;Fasthub is a demo app for Fastline &amp;amp; Github tutorial.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-keywords&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-keywords&quot;&gt;2. Keywords&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ubah isi dari file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;fastline/metadata/en-US/keywords.txt&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;CI/CD, Fastlane, Github&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-url&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-url&quot;&gt;3. URL&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ubah isi dari ketiga file berikut:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;fastline/metadata/en-US/privacy_url.txt&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;fastline/metadata/en-US/support_url.txt&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;fastline/metadata/en-US/marketing_url.txt&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;https://alfin.dev&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-copyright&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-copyright&quot;&gt;4. Copyright&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ubah isi dari file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;fastline/metadata/copyright.txt&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;Copyright © 2023 Fasthub&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#5-category&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;5-category&quot;&gt;5. Category&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ubah isi dari file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;fastline/metadata/primary_category.txt&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;UTILITIES&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kamu bisa melihat kategori apa saja yang tersedia, di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://docs.fastlane.tools/actions/deliver/#reference&quot; class=&quot;css-17g8l3v&quot;&gt;https://docs.fastlane.tools/actions/deliver/#reference&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#6-rating&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;6-rating&quot;&gt;6. Rating&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Buatlah file bernama &amp;quot;app_store_rating_config.json&amp;quot; di dalam folder &amp;quot;metadata&amp;quot; yang berisi code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-json css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;CARTOON_FANTASY_VIOLENCE&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;REALISTIC_VIOLENCE&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;PROLONGED_GRAPHIC_SADISTIC_REALISTIC_VIOLENCE&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;PROFANITY_CRUDE_HUMOR&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;MATURE_SUGGESTIVE&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;HORROR&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;MEDICAL_TREATMENT_INFO&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;ALCOHOL_TOBACCO_DRUGS&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;GAMBLING&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;SEXUAL_CONTENT_NUDITY&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;GRAPHIC_SEXUAL_CONTENT_NUDITY&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;UNRESTRICTED_WEB_ACCESS&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;GAMBLING_CONTESTS&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#7-review-information&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;7-review-information&quot;&gt;7. Review Information&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Buka folder &amp;quot;metadata/review_information&amp;quot;, dan silakan lengkapi kontennya, berikut adalah field-field yang mandatory:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;First Name&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Last Name&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Email&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Phone Number (+62)&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terakhir, silakan tambahkan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;lane&lt;/span&gt; baru bernama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;upload_appstore&lt;/span&gt; pada file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Fastfile&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;desc &amp;quot;Upload to App Store&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;lane :upload_appstore do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  deliver&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menggunakannya, caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane upload_appstore&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-pipeline-otomatisasi&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-pipeline-otomatisasi&quot;&gt;Membuat pipeline otomatisasi&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita akan membuat sebauh &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;lane&lt;/span&gt; baru untuk menggabungkan lane-lane yang telah kita buat.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Fastfile&lt;/span&gt; dan tambahkan code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;desc &amp;quot;Test, take screenshots, build, Create app, and upload to TestFlight &amp;amp; App Store&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;lane :run_pipeline do&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  test&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  screenshot&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  build&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  create_app&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  upload_testflight&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  upload_appstore&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;end&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, jika kita ingin menjalankan semua &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;lane&lt;/span&gt; yang telah kita buat, kita tinggal memasukkan command berikut ke Terminal:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fastlane run_pipeline&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#integrasi-github-actions&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;integrasi-github-actions&quot;&gt;Integrasi Github Actions&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar ketika kita melakukan perubahan kode pada Repository, proses deployment aplikasi kita otomatis dijalankan, kita perlu mengintegrasikannya ke Github Actions.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buat sebuah file &amp;quot;deploy.yml&amp;quot; di dalam folder baru bernama &amp;quot;.github/workflows&amp;quot;, yang berisi code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;name: deploy-ios-app&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;on:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  push:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    branches:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      - &amp;#x27;final&amp;#x27;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;jobs:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  deploy:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    runs-on: macos-latest&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    steps:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      - uses: actions/checkout@v2&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        with:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;         ruby-version: 3.2.1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;         bundler-cache: true&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      - run: |&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;          bundle update&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;          bundle exec fastlane run_pipeline&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sesuaikan nama branchnya jika diperlukan.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk memastikan apakah pipeline CI/CD kita sudah berjalan atau belum, silakan push code kita ke Github, dan buka Tab &amp;quot;Actions&amp;quot; maka pipeline CI/CD kita akan berjalan secara otomatis! 🎉&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Github Actions&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/ci-cd-aplikasi-ios-dengan-fastlane-dan-github-actions/aHR0cHM6Ly9pLnBvc3RpbWcuY2MveU5oYk5QQ1AvU2NyZWVuc2hvdC0yMDIzLTA5LTI3LWF0LTEzLTI1LTUwLnBuZw.png&quot; alt=&quot;Github Actions&quot; title=&quot;Github Actions&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Github Actions&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Baca juga:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://blog.alfin.dev/article/ci-cd-aplikasi-ios-dengan-appcenter&quot; class=&quot;css-17g8l3v&quot;&gt;CI/CD aplikasi iOS dengan AppCenter&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://blog.alfin.dev/article/ci-cd-aplikasi-ios-dengan-xcode-cloud&quot; class=&quot;css-17g8l3v&quot;&gt;CI/CD aplikasi iOS dengan Xcode Cloud&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[SwiftUI Modularization]]></title><description><![CDATA[Sharing image, font, serta cara navigasi pada arsitektur modular di SwiftUI menggunakan Swift Package Manager. (iOS 13)]]></description><link>https://blog.alfin.dev/articleswiftui-modularization</link><guid isPermaLink="false">https://blog.alfin.dev/articleswiftui-modularization</guid><pubDate>Mon, 28 Aug 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-modularization&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-modularization&quot;&gt;Apa itu Modularization?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Semakin bertambahnya fitur pada aplikasi yang kita kembangkan, kita pasti akan merasakan build time yang perlahan-lahan semakin lama. Salah satu solusi yang bisa kita lakukan adalah dengan memecah aplikasi kita menjadi aplikasi-aplikasi kecil, sehingga jika kita ingin menjalankan module Payment saja misalnya, Xcode tidak perlu meng-compile semua module lain yang ada pada project kita, sehingga build time-nya akan menjadi lebih cepat.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Aplikasi-aplikasi kecil tersebut nantinya bisa kita gabungkan menjadi satu aplikasi yang utuh untuk direlease ke AppStore. Teknik ini biasa disebut dengan Modularization.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada artikel ini, kita akan belajar bagaimana cara membuat aplikasi iOS dengan arsitektur modular menggunakan SwiftUI dan Swift Package Manager dengan target iOS versi 13. Serta menyelesaikan beberapa problem dalam membuat aplikasi yang modular, seperti sharing image, font, dan melakukan navigasi antar module.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#kelebihan-modularization&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;kelebihan-modularization&quot;&gt;Kelebihan Modularization&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa kelebihan aplikasi dengan arsitektur yang modular daripada arsitektur monolithic:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-build-time-lebih-cepat-️&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-build-time-lebih-cepat-️&quot;&gt;1. Build Time lebih cepat ⚡️&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dengan memecah aplikasi kita menjadi beberapa module, Xcode hanya akan meng-compile module yang mengalami perubahan saja. Misalnya kita mengubah judul pada halaman pembayaran di module Payment, maka module lain yang tidak mengalami perubahan tidak akan dicompile ulang oleh Xcode. Sehingga build time-nya akan menjadi lebih cepat.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita juga bisa membuat &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.apple.com/library/archive/featuredarticles/XcodeConcepts/Concept-Targets.html&quot; class=&quot;css-17g8l3v&quot;&gt;Target&lt;/a&gt; aplikasi-aplikasi kecil khusus untuk menjalankan satu module saja. Sehingga kita bisa menjalankan suatu fitur secara independen dan terisolasi.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-code-reusability&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-code-reusability&quot;&gt;2. Code Reusability&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Modularization memungkinkan kita untuk membuat satu module yang Reusable atau bisa digunakan berulang kali, Contohnya kita bisa membuat module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UI&lt;/span&gt;, yang berisi komponen-komponen User Interface seperti Button, TextField, dll. atau mungkin membuat module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;NetworkManager&lt;/span&gt; untuk melakukan Network Request.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-kolaborasi-tim&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-kolaborasi-tim&quot;&gt;3. Kolaborasi Tim&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Masalah yang sering kita hadapi ketika bekerja-sama dalam tim dalam 1 project adalah Git Conflict, apalagi jika conflict-nya di file &amp;quot;project.pbxproj&amp;quot; 🥲&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Conflict tersebut terjadi biasanya ketika ada lebih dari 1 orang mengerjakan di module yang sama. Nah dengan Modularization, conflict tersebut lebih bisa diminimalisir karena kita memecah module besar (aplikasi kita) menjadi beberapa module kecil, sehingga setiap orang bisa mengerjakan di module yang terpisah secara terisolasi, dengan boundary dan interface yang lebih jelas.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-mudah-untuk-ditest&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-mudah-untuk-ditest&quot;&gt;4. Mudah untuk ditest&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Module yang lebih kecil, terisolasi, independen, memiliki boundary dan interface yang jelas akan lebih mudah untuk ditest, untuk memastikan bahwa perubahan pada satu module tidak akan menyebabkan masalah pada module lain.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#5-meningkatkan-produktivitas-developer-&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;5-meningkatkan-produktivitas-developer-&quot;&gt;5. Meningkatkan Produktivitas Developer 🚀&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Build time yang lebih cepat, kode yang reusable, lebih sedikit Git Conflict, dan kemudahan dalam menulis Test tentu akan meningkatkan produktivitas kita sebagai Developer. 😄&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#architecture-overview&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;architecture-overview&quot;&gt;Architecture Overview&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebelum mulai menulis kode pertama kita dalam tutorial ini, saya akan menjelaskan sedikit mengenai arsitektur dari sample aplikasi yang akan kita buat.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, kita akan membuat aplikasi sederhana bernama &amp;quot;Bookstore&amp;quot;, aplikasi ini terdiri dari 4 module yaitu:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;App Module&lt;/strong&gt;, module utama dari project kita.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Product Module&lt;/strong&gt;, kita bisa navigasi ke halaman Cart.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Cart Module&lt;/strong&gt;, kita bisa navigasi ke halaman Product.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Shared Module&lt;/strong&gt;, modul yang berisi komponen-komponen yang bisa dipakai berulang-kali di modul-modul lain seperti gambar, dll.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kira-kira diagram-nya seperti ini:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Modular Architecture&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/swiftui-modularization/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvWXFSeUtia2QvU2NyZWVuc2hvdC0yMDIzLTA4LTI4LWF0LTIyLTQyLTU5LnBuZw.png&quot; alt=&quot;Modular Architecture&quot; title=&quot;Modular Architecture&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Modular Architecture&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebagai perbandingan, berikut adalah diagram dari aplikasi &amp;quot;Bookstore&amp;quot; jika dalam arsitektur Monolithic:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Monolithic Architecture&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/swiftui-modularization/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvaGpLcDVkd2svU2NyZWVuc2hvdC0yMDIzLTA4LTI4LWF0LTIyLTQ4LTE0LnBuZw.png&quot; alt=&quot;Monolithic Architecture&quot; title=&quot;Monolithic Architecture&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Monolithic Architecture&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Bisa dilihat dari kedua diagram di atas, bahwa dalam arsitektur modular, module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Product&lt;/span&gt; dan module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Cart&lt;/span&gt; tidak bisa saling punya dependensi, karena bisa menyebabkan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Circular Dependency&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Solusinya kita bisa buat interface di dalam module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Shared&lt;/span&gt;, jadi, module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Product&lt;/span&gt; dan module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Cart&lt;/span&gt; berkomunikasi melalui interface tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Circular Dependency&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/swiftui-modularization/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvRkttSjA1N1ovR3JvdXAtMy5wbmc.png&quot; alt=&quot;Circular Dependency&quot; title=&quot;Circular Dependency&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Circular Dependency&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#setup-project&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;setup-project&quot;&gt;Setup Project&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita akan mulai membuat aplikasi &amp;quot;Bookstore&amp;quot; kita, berdasarkan arsitektur di atas.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-workspace&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;membuat-workspace&quot;&gt;Membuat Workspace&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pertama, kita akan membuat sebuah Workspace, Workspace sebuah file dokumen dari Xcode yang bisa kita gunakan untuk mengelompokkan beberapa project yang berbeda menjadi 1 window sehingga kita tidak perlu berpindah-pindah window.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka Xcode, kemudian klik menu &amp;quot;File -&amp;gt; New -&amp;gt; Workspace&amp;quot;, buat folder baru bernama &amp;quot;Bookstore&amp;quot;, isi nama workspace-nya dengan nama &amp;quot;Bookstore.xcworkspace&amp;quot; dan taruh di dalam folder &amp;quot;Bookstore&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-project&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;membuat-project&quot;&gt;Membuat Project&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Selanjutnya kita akan membuat project iOS baru, dengan cara klik &amp;quot;File -&amp;gt; New -&amp;gt; Project&amp;quot;, dan jangan lupa pilih &amp;quot;SwiftUI&amp;quot; sebagai interface-nya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Klik &amp;quot;Next&amp;quot;, dan taruh di dalam satu folder yang sama dengan &amp;quot;Bookstore.xcworkspace&amp;quot;, lalu pilih &amp;quot;Bookstore&amp;quot; pada pilihan &amp;quot;Add to&amp;quot; dan &amp;quot;Group&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Membuat Project&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/swiftui-modularization/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvM3JnM2ZRMVYvU2NyZWVuc2hvdC0yMDIzLTA4LTI5LWF0LTIwLTIwLTE3LnBuZw.png&quot; alt=&quot;Membuat Project&quot; title=&quot;Membuat Project&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Membuat Project&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian ubah target minimum deployment menjadi iOS 13.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;dan karena target kita adalah iOS 13, maka kita tidak bisa menggunakan &amp;quot;BookstoreApp.swift&amp;quot; sebagai entry point dari aplikasi kita. Sebagai gantinya kita akan menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;AppDelegate&lt;/span&gt; dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;SceneDelegate&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan hapus file &amp;quot;BookstoreApp.swift&amp;quot; dan &amp;quot;ContentView.swift&amp;quot;, dan buatlah 3 file berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;AppDelegate.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIKit&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@main&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;final&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AppDelegate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;NSObject&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIApplicationDelegate&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;application&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; application&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIApplication&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        didFinishLaunchingWithOptions launchOptions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIApplication&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;LaunchOptionsKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;Any&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Bool&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;application&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; application&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIApplication&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        configurationForConnecting connectingSceneSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UISceneSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        options&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIScene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ConnectionOptions&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UISceneConfiguration&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sessionRole &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; connectingSceneSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;role&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sceneConfig &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UISceneConfiguration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sessionRole&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sessionRole&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        sceneConfig&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;delegateClass &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SceneDelegate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sceneConfig&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;SceneDelegate.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIKit&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;final&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SceneDelegate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;NSObject&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIWindowSceneDelegate&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; window&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIWindow&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;scene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; scene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIScene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; willConnectTo session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UISceneSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; options connectionOptions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIScene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ConnectionOptions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; windowScene &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;scene &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;as&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIWindowScene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        window &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIWindow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;windowScene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; windowScene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        window&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;rootViewController &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIHostingController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;rootView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;HomePage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        window&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;makeKeyAndVisible&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;HomePage.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;HomePage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;some&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VStack&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Bookstore&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;store&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;resizable&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;aspectRatio&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;contentMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;fill&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;frame&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;250&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Navigate to Product Page&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// TODO&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Navigate to Cart Page&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// TODO&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Spacer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-modules&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;membuat-modules&quot;&gt;Membuat Modules&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita akan membuat 3 module menggunakan Swift Package Manager, yaitu module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Shared&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Product&lt;/span&gt; dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Cart&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Module Shared akan berisi Assets seperti gambar dan font, serta sebuah class bernama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Navigator&lt;/span&gt; untuk melakukan navigasi antar module.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan klik menu &amp;quot;File -&amp;gt; New -&amp;gt; Package&amp;quot;, beri nama &amp;quot;Shared&amp;quot; dan jangan lupa pilih &amp;quot;Bookstore&amp;quot; pada pilihan &amp;quot;Add to&amp;quot; dan &amp;quot;Group&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian kita set target platform menjadi iOS 13, lalu buka file &amp;quot;Package.swift&amp;quot; dan tambahkan code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Package.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// swift-tools-version: 5.8&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// The swift-tools-version declares the minimum version of Swift required to build this package.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;PackageDescription&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; package &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Package&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Shared&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    platforms&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;iOS&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;v13&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    products&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Products define the executables and libraries a package produces, and make them visible to other packages.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;library&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Shared&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            targets&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Shared&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    dependencies&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Dependencies declare other packages that this package depends on.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// .package(url: /* package url */, from: &amp;quot;1.0.0&amp;quot;),&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    targets&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Targets are the basic building blocks of a package. A target can define a module or a test suite.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Targets can depend on other targets in this package, and on products in packages this package depends on.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Shared&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            dependencies&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;testTarget&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;SharedTests&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            dependencies&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Shared&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lakukan langkah di atas untuk membuat module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Product&lt;/span&gt; dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Cart&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika ketiga module tersebut telah dibuat, di target &amp;quot;Bookstore&amp;quot; pada bagian &amp;quot;Targets -&amp;gt; General -&amp;gt; Frameworks, Library, and Embedded Content&amp;quot;, silakan tambahkan ketiga module tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Frameworks, Library, and Embedded Content&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/swiftui-modularization/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvRFpRMEhuTnovU2NyZWVuc2hvdC0yMDIzLTA4LTI5LWF0LTIwLTU3LTE0LnBuZw.png&quot; alt=&quot;Frameworks, Library, and Embedded Content&quot; title=&quot;Frameworks, Library, and Embedded Content&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Frameworks, Library, and Embedded Content&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#sharing-image&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;sharing-image&quot;&gt;Sharing Image&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di module Shared, silakan buat &lt;strong&gt;Asset Catalog&lt;/strong&gt; dan import file gambar kamu.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah, agar module lain bisa mengakses gambar yang ada di dalam module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Shared&lt;/span&gt;, kita perlu mengisi parameter &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;bundle&lt;/span&gt; menjadi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;.module&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buat file baru bernama &amp;quot;Extension+Image.swift&amp;quot; yang berisi code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Extension+Image.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;extension&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Image&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;shared name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; bundle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;module&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menggunakannya, caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;HomePage.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Shared&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;HomePage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;some&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VStack&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Bookstore&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;store&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;resizable&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;aspectRatio&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;contentMode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;fill&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;frame&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;250&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Navigate to Product Page&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// TODO&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Navigate to Cart Page&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// TODO&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Spacer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#sharing-font&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;sharing-font&quot;&gt;Sharing Font&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pertama, siapkan font-nya terlebih dahulu, kamu bisa mencarinya di Google Fonts, Dafont, dll. setelah dapat, silakan masukkan di folder &amp;quot;Fonts&amp;quot; pada module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Shared&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian buat file bernama &amp;quot;Extension+Font.swift&amp;quot; yang berisi code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Extension+Font.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;extension&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Font&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Shared&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Fonts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGFloat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Font&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontName &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;rawValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;separator&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;first&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;custom&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;fontName&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Fonts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CaseIterable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; pinokio &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Pinokio.otf&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;extension&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Fonts&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;registerFonts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Fonts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;allCases&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;forEach &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; font &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token short-argument&quot;&gt;$0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;rawValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;split&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;separator&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontName &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;font&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontExtension &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;font&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;registerFont&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bundle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;module&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontName&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontName&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontExtension&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontExtension&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;registerFont&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bundle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Bundle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontName&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontExtension&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontURL &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; bundle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;forResource&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontName&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; withExtension&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontExtension&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;              &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontDataProvider &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGDataProvider&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; fontURL &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;as&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;CFURL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;              &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; font &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGFont&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;fontDataProvider&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fatalError&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Couldn&amp;#x27;t create font from filename: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;fontName&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt; with extension &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;fontExtension&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Unmanaged&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CFError&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CTFontManagerRegisterGraphicsFont&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;font&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan masukkan nama font yang ingin kamu gunakan di dalam enum &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Fonts&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dan agar font kita ikut terbawa dalam bundle pada module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Shared&lt;/span&gt;, silakan tambahkan code berikut pada file &amp;quot;Package.swift&amp;quot;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Package.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// swift-tools-version: 5.8&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// The swift-tools-version declares the minimum version of Swift required to build this package.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;PackageDescription&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; package &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Package&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Shared&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    platforms&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;iOS&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;v13&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    products&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Products define the executables and libraries a package produces, and make them visible to other packages.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;library&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Shared&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            targets&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Shared&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    dependencies&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Dependencies declare other packages that this package depends on.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// .package(url: /* package url */, from: &amp;quot;1.0.0&amp;quot;),&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    targets&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Targets are the basic building blocks of a package. A target can define a module or a test suite.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Targets can depend on other targets in this package, and on products in packages this package depends on.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Shared&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            dependencies&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            resources&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;process&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Fonts&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;testTarget&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;SharedTests&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            dependencies&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Shared&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah, untuk menggunakannya, kita tidak akan menambahkannya di &amp;quot;Info.plist&amp;quot; namun kita registrasikan secara programmatically.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka file &amp;quot;SceneDelegate.swift&amp;quot; dan tambahkan code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;SceneDelegate.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Shared&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; windowScene &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;scene &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;as&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIWindowScene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Fonts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;registerFonts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita sudah bisa menggunakan custom font dari module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Shared&lt;/span&gt;, seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Bookstore&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;font&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;pinokio&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;48&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#navigasi-antar-module&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;navigasi-antar-module&quot;&gt;Navigasi antar module&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk melakukan navigasi secara programmatically, kita akan menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UIKit&lt;/span&gt;, karena kita tidak bisa menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;NavigationStack&lt;/span&gt; untuk melakukan navigasi secara programmatic pada SwiftUI di iOS 13 (minimal iOS 16).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di dalam module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Shared&lt;/span&gt;, silakan buat file &amp;quot;Navigator.swift&amp;quot; yang berisi code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Navigator.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;final&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Navigator&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ObservableObject&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; navigationController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UINavigationController&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UINavigationController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; router&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; any &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;RouterProtocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; initialRoute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Route&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;router&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;some&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;RouterProtocol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; initialRoute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;router &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; router&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;initialRoute &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; initialRoute&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;navigate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; initialRoute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;navigate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;to route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; transition&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Transition&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Bool&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; view &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; router&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;erased&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;environmentObject&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; viewController &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIHostingController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;rootView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; view&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; transition &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;navigationController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;pushViewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;viewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;presentSheet&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            viewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;modalPresentationStyle &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;formSheet&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;navigationController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;present&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;viewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;presentFullscreen&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            viewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;modalPresentationStyle &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;fullScreen&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;navigationController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;present&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;viewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;pop&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Bool&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;37&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;navigationController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;popViewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;popToRoot&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Bool&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;41&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;navigationController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;popToRootViewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;43&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;44&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;dismiss&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Bool&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;45&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;navigationController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;dismiss&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; animated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;46&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;47&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;48&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;49&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;extension&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; erased&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AnyView&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;51&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AnyView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;52&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;53&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;54&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;55&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;56&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Transition&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;57&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; push&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;58&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; presentSheet&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;59&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; presentFullscreen&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;61&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;protocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;RouterProtocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;63&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;associatedtype&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;V&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;64&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;65&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@ViewBuilder&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;66&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;V&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;67&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;68&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;69&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// MARK: - Route&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;70&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Route&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;71&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MainRoute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;72&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductRoute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;73&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;cart&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CartRoute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;74&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;75&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;76&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MainRoute&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;77&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; homePage&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;78&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;79&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;80&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductRoute&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;81&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; productPage&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;82&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;83&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;84&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CartRoute&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;85&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; cartPage&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;86&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;class &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Navigator&lt;/span&gt; conform ke protocol &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;ObservableObject&lt;/span&gt; karena kita akan menggunakannya sebagai &lt;strong&gt;Environment Object&lt;/strong&gt; sehingga kita tidak perlu untuk passing object &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Navigator&lt;/span&gt; secara eksplisit di tiap-tiap &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;View&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka file &amp;quot;SceneDelegate.swift&amp;quot; dan tambahkan code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;SceneDelegate.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIKit&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Shared&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;final&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SceneDelegate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;NSObject&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIWindowSceneDelegate&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; window&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIWindow&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; navigator&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Navigator&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;router&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Router&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; initialRoute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;homePage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;scene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; scene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIScene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; willConnectTo session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UISceneSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; options connectionOptions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIScene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ConnectionOptions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; windowScene &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;scene &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;as&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIWindowScene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Fonts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;registerFonts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        window &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIWindow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;windowScene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; windowScene&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        window&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;rootViewController &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; navigator&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;navigationController&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        window&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;makeKeyAndVisible&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        navigator&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;start&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;dan berikut adalah implementasi dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;RouterProtocol&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Router.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Shared&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Cart&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Router&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;RouterProtocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@ViewBuilder&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;some&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MainRouter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductRouter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;cart&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CartRouter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MainRouter&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@ViewBuilder&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MainRoute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;some&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;homePage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;HomePage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductRouter&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@ViewBuilder&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductRoute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;some&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;productPage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;37&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductPage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;41&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;43&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CartRouter&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;44&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@ViewBuilder&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;45&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CartRoute&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;some&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;46&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; route &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;47&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cartPage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;48&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CartPage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;49&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;51&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita sudah bisa menggunakan class &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Navigator&lt;/span&gt; untuk melakukan navigasi antar module.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebagai contoh, kita akan melakukan navigasi dari module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Product&lt;/span&gt; ke module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Cart&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pertama, silakan ubah isi file &amp;quot;Package.swift&amp;quot; di module &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Product&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Package.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// swift-tools-version: 5.8&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// The swift-tools-version declares the minimum version of Swift required to build this package.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;PackageDescription&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; package &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Package&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Product&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    platforms&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;iOS&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;v13&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    products&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Products define the executables and libraries a package produces, and make them visible to other packages.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;library&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Product&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            targets&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Product&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    dependencies&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Dependencies declare other packages that this package depends on.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// .package(url: /* package url */, from: &amp;quot;1.0.0&amp;quot;),&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;package&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;../Shared&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    targets&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Targets are the basic building blocks of a package. A target can define a module or a test suite.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Targets can depend on other targets in this package, and on products in packages this package depends on.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;target&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Product&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            dependencies&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Shared&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;testTarget&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;ProductTests&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            dependencies&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Product&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;lalu untuk navigasinya, caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;ProductPage.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Shared&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductPage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@EnvironmentObject&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; navigator&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Navigator&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;some&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Navigate to Cart Page&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            navigator&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;navigate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;cart&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;route&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cartPage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;navigationBarTitle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Product Page&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Bookstore App&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/swiftui-modularization/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvU0tYWHh4TEsvU2NyZWVuLVJlY29yZGluZy0yMDIzLTA4LTI5LWF0LTIyLTIyLTMzLmdpZg.gif&quot; alt=&quot;Bookstore App&quot; title=&quot;Bookstore App&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Bookstore App&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita telah mengetahui apa itu Modularization, kelebihannya, serta bagaimana cara untuk membuat aplikasi iOS yang modular menggunakan SwiftUI dan Swift Package Manager. Jika kita berencana untuk mengubah aplikasi Monolith kita menjadi aplikasi yang lebih modular, ada sebuah guideline menarik dari &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.essentialdeveloper.com/&quot; class=&quot;css-17g8l3v&quot;&gt;Essential Developer&lt;/a&gt; dalam memecah aplikasi menjadi module-module yang lebih kecil:&lt;/p&gt;&lt;style data-emotion=&quot;css u8209z&quot;&gt;.css-u8209z{padding-left:48px;padding-right:48px;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-u8209z&quot;&gt;&lt;style data-emotion=&quot;css z77zqz&quot;&gt;.css-z77zqz{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:500;font-size:1.25rem;line-height:1.6;color:rgba(0,0,0,0.5);font-size:16px;text-indent:-0.45em;}.css-z77zqz::before{content:open-quote;}.css-z77zqz::after{content:close-quote;}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-z77zqz&quot;&gt;Keep together what changes together. Separate what doesn&amp;#x27;t change together.&lt;/h6&gt;&lt;style data-emotion=&quot;css 18k19ow&quot;&gt;.css-18k19ow{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.75;color:rgba(0,0,0,0.25);}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-subtitle1 css-18k19ow&quot;&gt;Essential Developer&lt;/h6&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Source code lengkap dari tutorial ini bisa teman-teman akses di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/alfinsyahruddin/Bookstore&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/alfinsyahruddin/Bookstore&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Referensi :&lt;/strong&gt;&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://levelup.gitconnected.com/benefits-of-modularization-in-ios-apps-6c60a1ee306c&quot; class=&quot;css-17g8l3v&quot;&gt;https://levelup.gitconnected.com/benefits-of-modularization-in-ios-apps-6c60a1ee306c&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://holyswift.app/introduction-to-swiftui-modularisation-with-spm&quot; class=&quot;css-17g8l3v&quot;&gt;https://holyswift.app/introduction-to-swiftui-modularisation-with-spm&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=qZ4KW4zH4do&quot; class=&quot;css-17g8l3v&quot;&gt;https://www.youtube.com/watch?v=qZ4KW4zH4do&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Object Detection pada iOS]]></title><description><![CDATA[Tutorial Object Detection menggunakan Create ML dan Vision Framework.]]></description><link>https://blog.alfin.dev/articleobject-detection-pada-ios</link><guid isPermaLink="false">https://blog.alfin.dev/articleobject-detection-pada-ios</guid><pubDate>Thu, 22 Jun 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada artikel kali ini kita akan mempelajari bagaimana cara mendeteksi objek pada gambar di iOS.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita akan membuat aplikasi sederhana untuk menghitung jumlah uang koin yang ada di gambar secara real-time serta menampilkan Bounding Box dari setiap koin yang terdeteksi.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-object-detection&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-object-detection&quot;&gt;Apa itu Object Detection?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Object Detection adalah proses untuk mendeteksi keberadaan suatu objek dalam sebuah gambar. Object Detection biasanya memanfaatkan teknologi Machine Learning dalam proses pembuatannya. Salah satu contoh penerapan Object Detection adalah pada mobil Self Driving.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Object Detection&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvTVo1NVZXYzUvaW1hZ2UucG5n.png&quot; alt=&quot;Object Detection&quot; title=&quot;Object Detection&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Object Detection&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di iOS sendiri kita bisa menggunakan Framework Vision untuk melakukan Object Detection. Vision merupakan salah satu Framework dari Apple yang dapat kita gunakan untuk melakukan berbagai task terkait dengan Computer Vision, misalnya seperti mendeteksi objek, mendeteksi wajah, membaca barcode, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#object-detection-vs-image-classification&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;object-detection-vs-image-classification&quot;&gt;Object Detection vs Image Classification&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebelumnya saya telah menulis artikel mengenai Image Classification pada iOS, kamu bisa membacanya di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://blog.alfin.dev/article/image-classification-pada-ios&quot; class=&quot;css-17g8l3v&quot;&gt;https://blog.alfin.dev/article/image-classification-pada-ios&lt;/a&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lalu apa bedanya dengan Object Detection? Jadi, kalau Image Classification itu akan mengembalikan hasil berupa 1 label saja yang mendeskripsikan suatu gambar. Sedangkan Object Detection bisa mengembalikan hasil lebih dari 1 label pada suatu gambar, dan pada Object Detection, kita juga akan mendapatkan Bounding Box dari setiap objek yang terdeteksi.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#melatih-model-dengan-create-ml&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;melatih-model-dengan-create-ml&quot;&gt;Melatih Model dengan Create ML&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dalam Machine Learning ada satu komponen penting bernama Model, Model adalah sebuah file yang telah dilatih untuk mengenali pola tertentu berdasarkan data yang kita berikan dan bisa membuat prediksi terhadap data baru.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk membuat Model, kita akan menggunakan aplikasi Create ML bawaan Xcode, namun sebelum itu kita harus mengumpulkan dataset atau data-data yang akan kita gunakan dalam melatih Model kita.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#mengumpulkan-datasets&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;mengumpulkan-datasets&quot;&gt;Mengumpulkan Datasets&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan ambil beberapa foto uang koin. Untuk jumlahnya sendiri dari Apple disarankan minimal 30 foto per kategori. Semakin banyak Datasets yang kita punya tentunya akan semakin akurat Model kita dalam memprediksi data baru.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lalu kita bagi Datasets kita menjadi 2 yaitu untuk training, dan untuk testing. Jumlah data testing disarankan sekitar 20% dari jumlah data training.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#tips-dalam-membuat-datasets&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;tips-dalam-membuat-datasets&quot;&gt;Tips dalam membuat Datasets&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa tips dalam membuat Datasets agar model kita lebih akurat dalam memprediksi data baru.&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Minimal 30 foto per kategori.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Ukuran foto setidaknya 299 x 299 pixel.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Jumlah data per kategori usahakan tidak terlalu jauh, misalnya kategori &amp;quot;Kucing&amp;quot; ada 100 foto, maka kategori yang lain sebaiknya ada sekitar 100 foto juga.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Ambil foto dari berbagai angle atau sudut pengambilan gambar.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Ambil foto dari pencahayaan yang berbeda-beda.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Ambil foto dari berbagai background.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;WWDC 2019&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvdkhGa1hXblYvU2NyZWVuc2hvdC0yMDIzLTA2LTE5LWF0LTIxLTQyLTI1LnBuZw.png&quot; alt=&quot;WWDC 2019&quot; title=&quot;WWDC 2019&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;WWDC 2019&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-file-json-annotation&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;membuat-file-json-annotation&quot;&gt;Membuat file JSON Annotation&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebelum kita melatih Model kita dengan Datasets yang baru saja kita kumpulkan, kita perlu untuk membuat sebuah file Annotation dalam format json.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;File Annotation adalah sebuah file yang mendeskripsikan kategori serta bounding box objek yang ingin kita deteksi. Format file Annotation itu seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Annotations.json&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-json css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;imagefilename&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;coin.png&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;annotation&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;label&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Coin&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;coordinates&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                    &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;y&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;156.062&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                    &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;x&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;195.122&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                    &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;height&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;148.872&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                    &lt;/span&gt;&lt;span class=&quot;token property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;&amp;quot;width&amp;quot;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;148.03&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Bounding Box&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvVHd5MWpLRHovaW1hZ2UucG5n.png&quot; alt=&quot;Bounding Box&quot; title=&quot;Bounding Box&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Bounding Box&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah agar lebih mudah dalam membuat file Annotation, kita bisa menggunakan aplikasi &amp;quot;AnnotationCreater&amp;quot;, kamu bisa mengunduhnya di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://apps.apple.com/id/app/annotationcreater/id1623375683?mt=12&quot; class=&quot;css-17g8l3v&quot;&gt;https://apps.apple.com/id/app/annotationcreater/id1623375683?mt=12&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Cara menggunakannya pun sangat mudah, kita tinggal import foto-foto kita, kemudian buat kategori baru, lalu gambar bounding box di mana objek yang ingin kita deteksi berada. Terakhir kita tinggal export dengan cara klik icon &amp;quot;Export&amp;quot; pada bagian kanan atas.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Aplikasi AnnotationCreater&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2Mvbkx0NFlnODYvU2NyZWVuc2hvdC0yMDIzLTA2LTIyLWF0LTEzLTA4LTQ3LnBuZw.png&quot; alt=&quot;Aplikasi AnnotationCreater&quot; title=&quot;Aplikasi AnnotationCreater&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Aplikasi AnnotationCreater&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-model&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;membuat-model&quot;&gt;Membuat Model&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka aplikasi Create ML dengan cara klik &amp;quot;Xcode -&amp;gt; Open Developer Tool -&amp;gt; Create ML&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Create ML&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvM3gxR0o0RHEvU2NyZWVuc2hvdC0yMDIzLTA2LTIyLWF0LTE4LTQ1LTQ2LnBuZw.png&quot; alt=&quot;Create ML&quot; title=&quot;Create ML&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Create ML&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lalu buat dokumen baru, pilih template &amp;quot;Object Detection&amp;quot;, dan beri nama &amp;quot;CoinDetector&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#training-model&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;training-model&quot;&gt;Training Model&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;setelah itu klik icon &amp;quot;+&amp;quot; untuk memasukkan data training dari folder &amp;quot;Annotation Export&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Object Detection&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvODU1MmpCVzcvU2NyZWVuc2hvdC0yMDIzLTA2LTIyLWF0LTEyLTAxLTM0LnBuZw.png&quot; alt=&quot;Object Detection&quot; title=&quot;Object Detection&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Object Detection&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;kita juga memberikan beberapa parameter seperti:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Algorithm&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Algoritma yang digunakan dalam training model. Pada CreateML ada 2 pilihan algoritma:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Full Network&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita melatih model kita dari awal. Cocok jika kita punya banyak data (200+) dan ingin support minimal iOS 12.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Full Network&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvMnkwSmY2dGovU2NyZWVuc2hvdC0yMDIzLTA2LTE5LWF0LTIxLTUyLTE2LnBuZw.png&quot; alt=&quot;Full Network&quot; title=&quot;Full Network&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Full Network&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Transfer Learning&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita menggunakan &amp;quot;object feature print&amp;quot; dari Vision. Cocok jika kita hanya punya sedikit data dan ingin ukuran dari model kita lebih kecil. Namun algoritma ini hanya mendukung iOS 14 ke atas.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Transfer Learning&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvNHkwNTVoTWMvU2NyZWVuc2hvdC0yMDIzLTA2LTE5LWF0LTIxLTU0LTQ4LnBuZw.png&quot; alt=&quot;Transfer Learning&quot; title=&quot;Transfer Learning&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Transfer Learning&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Model Size - Full Network vs Transfer Learning&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2Mva0dMUThQNkYvU2NyZWVuc2hvdC0yMDIzLTA2LTE5LWF0LTIxLTU1LTM3LnBuZw.png&quot; alt=&quot;Model Size - Full Network vs Transfer Learning&quot; title=&quot;Model Size - Full Network vs Transfer Learning&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Model Size - Full Network vs Transfer Learning&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;ol start=&quot;2&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Iterations&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berapa kali Datasets kita ingin dilatih.&lt;/p&gt;&lt;ol start=&quot;3&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Batch Size&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jumlah data yang dilatih dalam 1 Iteration. Semakin banyak Batch Size, jumlah memori yang digunakan juga akan semakin banyak.&lt;/p&gt;&lt;ol start=&quot;4&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Grid Size (khusus Full Network)&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi cara algoritma Full Network (YOLOv2) dalam mendeteksi objek adalah dengan membagi gambar kita menjadi beberapa Cell (algoritma ini akan mendeteksi 1 objek saja dalam 1 Cell). Nah, kita bisa mengatur ukuran Cell tersebut melalui Grid Size.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Grid Size&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvUmhIYjhCdHEvR3JvdXAtMTczODc5LnBuZw.png&quot; alt=&quot;Grid Size&quot; title=&quot;Grid Size&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Grid Size&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;kemudian kita klik &amp;quot;Train&amp;quot; untuk melatih model kita. Lalu tunggu sampai proses training selesai, training model pada Object Detection memang agak lebih lama daripada Image Classification.&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2Mvamp6M2doVzEvaW1hZ2UucG5n.png&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#evaluasi--preview-model&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;evaluasi--preview-model&quot;&gt;Evaluasi &amp;amp; Preview Model&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah itu kita bisa mengevaluasi apakah model kita sudah cukup akurat untuk memprediksi suatu data atau belum.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Evaluation&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvQ3hkMTdUazUvU2NyZWVuc2hvdC0yMDIzLTA2LTIyLWF0LTE4LTEzLTI4LnBuZw.png&quot; alt=&quot;Evaluation&quot; title=&quot;Evaluation&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Evaluation&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita juga bisa melakukan preview dengan cara drag image kita ke tab &amp;quot;Preview&amp;quot;.
&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Preview&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvMmp2bmR2bU0vU2NyZWVuc2hvdC0yMDIzLTA2LTIyLWF0LTE4LTEyLTMwLnBuZw.png&quot; alt=&quot;Preview&quot; title=&quot;Preview&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Preview&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#export-model&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;export-model&quot;&gt;Export Model&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk meng-export model, silakan ke tab &amp;quot;Output&amp;quot; dan klik icon &amp;quot;Get&amp;quot; lalu pilih lokasi di mana model kita akan disimpan.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#setup-project-ios&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;setup-project-ios&quot;&gt;Setup Project iOS&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang kita mulai membuat project iOS nya. Silakan buka Xcode dan buat project baru dengan cara klik &amp;quot;File -&amp;gt; New -&amp;gt; Project&amp;quot;, pilih interface &amp;quot;Storyboard&amp;quot; dan &amp;quot;Swift&amp;quot; sebagai bahasanya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah itu tarik file model yang telah kita buat (berekstensi .mlmodel) ke dalam project kita.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-ui&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-ui&quot;&gt;Membuat UI&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tampilan dari aplikasi yang akan kita buat cukup sederhana, yaitu:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Preview View (&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UIView&lt;/span&gt;): Untuk menampilkan preview dari kamera.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Total Label (&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UILabel&lt;/span&gt;): Untuk menampilkan label dari jumlah koin yang terdeteksi.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, silakan buat UI nya di Storyboard, dan jangan lupa untuk menghubungkan outlet-nya ke class &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;ViewController&lt;/span&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Storyboard&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvdDQxcVBkR1YvU2NyZWVuc2hvdC0yMDIzLTA2LTIyLWF0LTE4LTE0LTU0LnBuZw.png&quot; alt=&quot;Storyboard&quot; title=&quot;Storyboard&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Storyboard&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;ViewController.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ViewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIViewController&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@IBOutlet&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;weak&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; previewView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIView&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@IBOutlet&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;weak&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; totalLabel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UILabel&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#setup-layers&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;setup-layers&quot;&gt;Setup Layers&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita akan membuat 2 &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CALayer&lt;/span&gt;, yang pertama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;previewLayer&lt;/span&gt; untuk menampilkan Preview dari kamera, kemudian yang kedua adalah &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;detectionLayer&lt;/span&gt; untuk menggambar Bounding Box dari setiap koin yang terdeteksi.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lalu kita juga perlu menambahkan sebuah method bernama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;updateLayerGeometry&lt;/span&gt; untuk memperbaiki posisi dan ukuran dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;detectionLayer&lt;/span&gt;.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;ViewController.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; previewLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureVideoPreviewLayer&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; detectionLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CALayer&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupLayers&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;updateLayerGeometry&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupLayers&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Configure the preview layer&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    previewLayer &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureVideoPreviewLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    previewLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;videoGravity &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;resizeAspectFill&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    previewLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;frame &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;previewView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;layer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bounds&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;previewView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;layer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addSublayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;previewLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Configure the detection Layer&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    detectionLayer &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CALayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    detectionLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bounds &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGRect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        x&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0.0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        y&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0.0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; cameraSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; cameraSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;height&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    detectionLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;position &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGPoint&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        x&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;previewView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;layer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bounds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;midX&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        y&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;previewView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;layer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bounds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;midY&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;previewView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;layer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addSublayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;detectionLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;updateLayerGeometry&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; bounds &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;previewView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;layer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bounds&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; xScale&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGFloat&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; bounds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;width &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; cameraSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;height&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;37&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; yScale&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGFloat&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; bounds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;size&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;height &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; cameraSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;width&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; scale &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fmax&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;xScale&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; yScale&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; scale&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;isInfinite &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;41&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        scale &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1.0&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;43&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;44&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CATransaction&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;begin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;45&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CATransaction&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;kCFBooleanTrue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; forKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;kCATransactionDisableActions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;46&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;47&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// rotate the layer into screen orientation, scale and mirror&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;48&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    detectionLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setAffineTransform&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;49&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGAffineTransform&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            rotationAngle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGFloat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;pi &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;2.0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;51&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;52&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;scaledBy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; scale&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; y&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;scale&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;53&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;54&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;55&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// center the layer&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;56&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    detectionLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;position &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGPoint&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; bounds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;midX&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; y&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; bounds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;midY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;57&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;58&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CATransaction&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;commit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;59&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#setup-vision&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;setup-vision&quot;&gt;Setup Vision&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-request&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;membuat-request&quot;&gt;Membuat Request&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tambahkan kode berikut pada file ViewController.swift&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;ViewController.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIKit&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Vision&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CoreML&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ViewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIViewController&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@IBOutlet&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;weak&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; previewView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIView&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@IBOutlet&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;weak&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; totalLabel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UILabel&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNCoreMLRequest&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; previewLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureVideoPreviewLayer&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; detectionLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CALayer&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupVision&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupLayers&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;updateLayerGeometry&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupVision&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; coinDetector &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CoinDetector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;configuration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MLModelConfiguration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fatalError&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Failed to create an object detector model instance.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; model &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNCoreMLModel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; coinDetector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fatalError&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Failed to create a `VNCoreMLModel` instance.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;37&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNCoreMLRequest&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            model&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; model&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            completionHandler&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; visionRequestHandler&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;41&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;imageCropAndScaleOption &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;scaleFit&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;request &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;43&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;45&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;setupVision&lt;/span&gt;, kita membuat Vision Request untuk melakukan Object Detection menggunakan Model kita, Request ini nantinya akan dijalankan pada setiap frame sehingga akan terlihat real-time.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#handling-results&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;handling-results&quot;&gt;Handling Results&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian kita handling hasil dari proses Object Detection, kita akan menampilkan Bounding Box dari setiap koin yang terdeteksi serta meng-update Label kita sesuai dengan jumlah koin yang terdeteksi.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;ViewController.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;visionRequestHandler&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNRequest&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Vision image detection error: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;localizedDescription&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;results &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Vision request had no results.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; observations &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;results &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;as&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNRecognizedObjectObservation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;VNRequest produced the wrong result type: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;results&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;DispatchQueue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CATransaction&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;begin&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CATransaction&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;kCFBooleanTrue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; forKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;kCATransactionDisableActions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;detectionLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;sublayers &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// remove all the old recognized objects&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; observation &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; observations &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; objectBounds &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNImageRectForNormalizedRect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                observation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;boundingBox&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cameraSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cameraSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; shapeLayer &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;createRoundedRectLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;objectBounds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;detectionLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addSublayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;shapeLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;updateLayerGeometry&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CATransaction&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;commit&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Set Total Label&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; total &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; observations&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;37&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;totalLabel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;text &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;total&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt; Coins&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;41&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;createRoundedRectLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; bounds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGRect&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CALayer&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; shapeLayer &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CALayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;43&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    shapeLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bounds &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; bounds&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;44&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    shapeLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;position &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGPoint&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;x&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; bounds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;midX&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; y&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; bounds&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;midY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;45&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    shapeLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;backgroundColor &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIColor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;yellow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;withAlphaComponent&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0.15&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cgColor&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;46&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    shapeLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cornerRadius &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;47&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    shapeLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;borderColor &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIColor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;yellow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cgColor&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;48&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    shapeLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;borderWidth &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1.5&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;49&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; shapeLayer&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#setup-capture-session&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;setup-capture-session&quot;&gt;Setup Capture Session&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita akan mengintegrasikan Vision dengan AVFoundation agar bisa mendeteksi objek secara real-time.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada file bagian paling atas, silakan import &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;AVFoundation&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVFoundation&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lalu setelah deklarasi properti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;detectionLayer&lt;/span&gt;, tambahkan beberapa properti berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNCoreMLRequest&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; previewLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureVideoPreviewLayer&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; detectionLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CALayer&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; session &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; cameraSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGSize&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; videoOutputQueue &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;DispatchQueue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;video-output-queue&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; qos&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;userInitiated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian tambahkan function berikut untuk Setup Capture Session:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupCaptureSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;beginConfiguration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Add the video input to the capture session&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; camera &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureDevice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builtInWideAngleCamera&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;video&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        position&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;back&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Connect the camera to the capture session input&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; cameraInput &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureDeviceInput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;device&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; camera&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addInput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cameraInput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;sessionPreset &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;vga640x480&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Create the video data output&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; videoOutput &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureVideoDataOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    videoOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;alwaysDiscardsLateVideoFrames &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    videoOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;videoSettings &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;kCVPixelBufferPixelFormatTypeKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;kCVPixelFormatType_420YpCbCr8BiPlanarFullRange&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    videoOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setSampleBufferDelegate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; queue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; videoOutputQueue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Add the video output to the capture session&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;videoOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Set camera size&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; dimension &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CMVideoFormatDescriptionGetDimensions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;camera&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;activeFormat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;formatDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    cameraSize &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGSize&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGFloat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;dimension&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CGFloat&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;dimension&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;commitConfiguration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada kode di atas, kita mendelegasikan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;SampleBufferDelegate&lt;/span&gt; ke &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;self&lt;/span&gt; agar kita bisa mengakses tiap frame yang dicapture oleh AVFoundation. Nah, kita akan mendeteksi objek terhadap frame-frame tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan tambahkan kode berikut di bagian paling bawah:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;extension&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ViewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureVideoDataOutputSampleBufferDelegate&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;captureOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; output&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; didOutput sampleBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CMSampleBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; from connection&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureConnection&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; imageBuffer &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CMSampleBufferGetImageBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;sampleBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; handler &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNImageRequestHandler&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cvPixelBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; imageBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; handler&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;perform&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;catch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;localizedDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terakhir, kita akan menjalankan Capture Session. Ubah isi dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;viewDidLoad&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupVision&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupCaptureSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupLayers&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;updateLayerGeometry&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;DispatchQueue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;global&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;qos&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;startRunning&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kalau kita jalankan aplikasinya, maka hasilnya akan seperti ini 🎉&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Coin Detector App&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/object-detection-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2Mvbno1R2tqRnovSU1HLTM4NjgucG5n.png&quot; alt=&quot;Coin Detector App&quot; title=&quot;Coin Detector App&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Coin Detector App&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#whats-next&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;whats-next&quot;&gt;What&amp;#x27;s Next?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang kita telah mengetahui bagaimana cara membuat aplikasi Object Detection menggunakan Create ML dan Vision Framework serta mengintegrasikannya dengan AVFoundation agar kita bisa mendeteksi objek secara real-time, selanjutnya mungkin kamu bisa kembangkan lagi project ini untuk mendeteksi koin sesuai nominalnya apakah Rp100, Rp500, Rp1000, atau kamu bisa juga menambahkan suara menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;AVSpeechSynthesizer&lt;/span&gt; ketika koin terdeteksi, dll 😄&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Source code lengkapnya bisa kamu lihat melalui link berikut: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/alfinsyahruddin/CoinDetector&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/alfinsyahruddin/CoinDetector&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Image Classification pada iOS]]></title><description><![CDATA[Tutorial Image Classification menggunakan Create ML dan Vision Framework.]]></description><link>https://blog.alfin.dev/articleimage-classification-pada-ios</link><guid isPermaLink="false">https://blog.alfin.dev/articleimage-classification-pada-ios</guid><pubDate>Sun, 18 Jun 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada artikel kali ini kita akan mempelajari bagaimana cara membuat aplikasi Image Classification pada iOS.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita akan membuat aplikasi sederhana untuk membedakan uang Rp50.000 dan Rp100.000 secara real-time. aplikasi yang mungkin berguna untuk teman-teman kita yang tuna netra atau punya gangguan pengelihatan.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-image-classification&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-image-classification&quot;&gt;Apa itu Image Classification?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Image Classification adalah proses untuk mengkategorikan atau memberikan label kepada sebuah gambar. Image Classification biasanya memanfaatkan teknologi Machine Learning dalam proses pembuatannya. Contoh penerapan Image Classification adalah pengkategorian tipe gambar secara otomatis pada aplikasi Photos di iOS.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Photos&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/image-classification-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2Mvcm10Mk5ZeTcvSU1HLTM3OTcuanBn.jpg&quot; alt=&quot;Photos&quot; title=&quot;Photos&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Photos&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di iOS sendiri kita bisa menggunakan Framework Vision untuk melakukan Image Classification. Vision merupakan salah satu Framework dari Apple yang dapat kita gunakan untuk melakukan berbagai task terkait dengan Computer Vision, misalnya seperti klasifikasi gambar, mendeteksi wajah, mendeteksi teks dalam gambar, membaca barcode, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#melatih-model-dengan-create-ml&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;melatih-model-dengan-create-ml&quot;&gt;Melatih Model dengan Create ML&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dalam Machine Learning ada satu komponen penting bernama Model, Model adalah sebuah file yang telah dilatih untuk mengenali pola tertentu berdasarkan data yang kita berikan dan bisa membuat prediksi terhadap data baru.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk membuat Model, kita akan menggunakan aplikasi Create ML bawaan Xcode, namun sebelum itu kita harus mengumpulkan Datasets atau data-data yang akan kita gunakan dalam melatih Model kita.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#mengumpulkan-datasets&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;mengumpulkan-datasets&quot;&gt;Mengumpulkan Datasets&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan ambil beberapa foto uang Rp50.000 dan Rp100.000. Untuk jumlahnya sendiri dari Apple disarankan minimal 10 foto per kategori. Semakin banyak Datasets yang kita punya tentunya akan semakin akurat Model kita dalam memprediksi data baru.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lalu kelompokkan gambar kita ke dalam folder menjadi seperti ini:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Datasets&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/image-classification-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvYzFqbkZLeDMvU2NyZWVuc2hvdC0yMDIzLTA2LTE4LWF0LTE0LTAxLTIyLnBuZw.png&quot; alt=&quot;Datasets&quot; title=&quot;Datasets&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Datasets&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, kita bagi Datasets kita menjadi 2 yaitu untuk training, dan untuk testing. Jumlah data testing disarankan sekitar 20% dari jumlah data training.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#tips-dalam-membuat-datasets&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;tips-dalam-membuat-datasets&quot;&gt;Tips dalam membuat Datasets&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa tips dalam membuat Datasets agar model kita lebih akurat dalam memprediksi data baru.&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Minimal 10 foto per kategori.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Ukuran foto setidaknya 299 x 299 pixel.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Jumlah data per kategori usahakan tidak terlalu jauh, misalnya kategori &amp;quot;Kucing&amp;quot; ada 100 foto, maka kategori yang lain sebaiknya ada sekitar 100 foto juga.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Ambil foto dari berbagai angle atau sudut pengambilan gambar.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Ambil foto dari pencahayaan yang berbeda-beda.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Ambil foto dari berbagai background.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-model&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;membuat-model&quot;&gt;Membuat Model&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka aplikasi Create ML dengan cara klik &amp;quot;Xcode -&amp;gt; Open Developer Tool -&amp;gt; Create ML&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Create ML&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/image-classification-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvWVNNeDM0cjcvU2NyZWVuc2hvdC0yMDIzLTA2LTE4LWF0LTE0LTA3LTIyLnBuZw.png&quot; alt=&quot;Create ML&quot; title=&quot;Create ML&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Create ML&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lalu buat dokumen baru, pilih template &amp;quot;Image Classification&amp;quot;, dan beri nama &amp;quot;MoneyClassifier&amp;quot;.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#training-model&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;training-model&quot;&gt;Training Model&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;setelah itu klik icon &amp;quot;+&amp;quot; untuk memasukkan data training dan data testing kita.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;kita juga bisa memberikan beberapa parameter seperti Iteration dan Augmentations.&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Iteration adalah berapa kali Datasets kita ingin dilatih. Kita pakai default saja (25).&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Augmentations berguna untuk membuat variasi-variasi baru pada Datasets kita, seperti merotasi gambar, menambahkan efek blur, noise, dll.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;kemudian kita klik &amp;quot;Train&amp;quot; untuk melatih model kita.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#evaluasi--preview-model&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;evaluasi--preview-model&quot;&gt;Evaluasi &amp;amp; Preview Model&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah itu kita bisa mengevaluasi apakah model kita sudah cukup akurat untuk memprediksi suatu data atau belum.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Evaluation&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/image-classification-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvUEpza3YxRFcvU2NyZWVuc2hvdC0yMDIzLTA2LTE4LWF0LTE0LTIyLTUzLnBuZw.png&quot; alt=&quot;Evaluation&quot; title=&quot;Evaluation&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Evaluation&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita juga bisa melakukan preview dengan cara drag image kita ke tab &amp;quot;Preview&amp;quot; atau secara live menggunakan kamera.
&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Preview&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/image-classification-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvWktMaDBCNU4vU2NyZWVuc2hvdC0yMDIzLTA2LTE4LWF0LTE0LTI1LTAxLnBuZw.png&quot; alt=&quot;Preview&quot; title=&quot;Preview&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Preview&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#export-model&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;export-model&quot;&gt;Export Model&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk meng-export model, silakan ke tab &amp;quot;Output&amp;quot; dan klik icon &amp;quot;Get&amp;quot; lalu pilih lokasi di mana model kita akan disimpan.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#setup-project-ios&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;setup-project-ios&quot;&gt;Setup Project iOS&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang kita mulai membuat project iOS nya. Silakan buka Xcode dan buat project baru dengan cara klik &amp;quot;File -&amp;gt; New -&amp;gt; Project&amp;quot;, pilih interface &amp;quot;Storyboard&amp;quot; dan &amp;quot;Swift&amp;quot; sebagai bahasanya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah itu tarik file model yang telah kita buat (berekstensi .mlmodel) ke dalam project kita.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-ui&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-ui&quot;&gt;Membuat UI&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tampilan dari aplikasi yang akan kita buat cukup sederhana, yaitu:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Preview View (&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UIView&lt;/span&gt;): Untuk menampilkan preview dari kamera.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Label (&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UILabel&lt;/span&gt;): Untuk menampilkan label dari hasil klasifikasi gambar.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, silakan buat UI nya di Storyboard, dan jangan lupa untuk menghubungkan outlet-nya ke class &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;ViewController&lt;/span&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Storyboard&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/image-classification-pada-ios/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvNnFMRkNHckYvU2NyZWVuc2hvdC0yMDIzLTA2LTE4LWF0LTE3LTQxLTA0LnBuZw.png&quot; alt=&quot;Storyboard&quot; title=&quot;Storyboard&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Storyboard&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;ViewController.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ViewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIViewController&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@IBOutlet&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;weak&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; previewView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIView&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@IBOutlet&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;weak&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UILabel&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#setup-vision&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;setup-vision&quot;&gt;Setup Vision&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-request&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;membuat-request&quot;&gt;Membuat Request&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tambahkan kode berikut pada file ViewController.swift&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIKit&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Vision&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CoreML&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ViewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIViewController&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@IBOutlet&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;weak&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; previewView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIView&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@IBOutlet&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;weak&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UILabel&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNCoreMLRequest&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupVision&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupVision&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; moneyClassifier &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MoneyClassifier&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;configuration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MLModelConfiguration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fatalError&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Failed to create an image classifier model instance.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; model &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNCoreMLModel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; moneyClassifier&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;model&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fatalError&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Failed to create a `VNCoreMLModel` instance.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNCoreMLRequest&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            model&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; model&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            completionHandler&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; visionRequestHandler&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;request &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;37&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;setupVision&lt;/span&gt;, kita membuat Vision Request untuk melakukan Image Classification menggunakan Model kita, Request ini nantinya akan dijalankan pada tiap frame sehingga terlihat real-time.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#handling-results&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;handling-results&quot;&gt;Handling Results&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian kita handling hasil dari proses Image Classification, jika tingkat &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;confidence&lt;/span&gt; lebih dari 0.9 maka kita update &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UILabel&lt;/span&gt; kita.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;visionRequestHandler&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNRequest&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Vision image detection error: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;localizedDescription&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;results &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;==&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Vision request had no results.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; observations &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;results &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;as&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNClassificationObservation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;VNRequest produced the wrong result type: &lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;type&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;of&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;results&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;DispatchQueue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;main&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; observation &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; observations&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;first&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; observation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;confidence &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0.9&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;text &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; observation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;identifier&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; observation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;identifier &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;50000&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;textColor &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;systemBlue&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;100000&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;textColor &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;systemRed&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;break&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#setup-capture-session&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;setup-capture-session&quot;&gt;Setup Capture Session&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita akan mengintegrasikan Vision dengan AVFoundation agar bisa mengklasifikasi gambar secara real-time.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada file bagian paling atas, silakan import &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;AVFoundation&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVFoundation&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lalu setelah deklarasi properti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;request&lt;/span&gt;, tambahkan beberapa properti berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; session &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; previewLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureVideoPreviewLayer&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; videoOutputQueue &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;DispatchQueue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;video-output-queue&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; qos&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;userInitiated&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian tambahkan function berikut untuk Setup Capture Session:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupCaptureSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;beginConfiguration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Add the video input to the capture session&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; camera &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureDevice&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;builtInWideAngleCamera&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;video&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        position&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;back&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Connect the camera to the capture session input&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; cameraInput &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureDeviceInput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;device&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; camera&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addInput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cameraInput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;sessionPreset &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;vga640x480&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Create the video data output&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; videoOutput &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureVideoDataOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    videoOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;alwaysDiscardsLateVideoFrames &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    videoOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;videoSettings &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;kCVPixelBufferPixelFormatTypeKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;kCVPixelFormatType_420YpCbCr8BiPlanarFullRange&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    videoOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setSampleBufferDelegate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; queue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; videoOutputQueue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Add the video output to the capture session&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;videoOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;commitConfiguration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// Configure the preview layer&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    previewLayer &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureVideoPreviewLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    previewLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;videoGravity &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;resizeAspectFill&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    previewLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;frame &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;previewView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;layer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;bounds&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;previewView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;layer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addSublayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;previewLayer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada kode di atas, kita mendelegasikan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;SampleBufferDelegate&lt;/span&gt; ke &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;self&lt;/span&gt; agar kita bisa mengakses tiap frame yang dicapture oleh AVFoundation. Nah, kita akan mengklasifikasi gambar terhadap frame-frame tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan tambahkan kode berikut di bagian paling bawah:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;extension&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ViewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureVideoDataOutputSampleBufferDelegate&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;captureOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; output&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureOutput&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; didOutput sampleBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CMSampleBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; from connection&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AVCaptureConnection&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; imageBuffer &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CMSampleBufferGetImageBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;sampleBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; handler &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNImageRequestHandler&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cvPixelBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; imageBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; handler&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;perform&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;catch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;localizedDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terakhir, kita akan menjalankan Capture Session. Ubah isi dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;viewDidLoad&lt;/span&gt; menjadi seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupVision&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupCaptureSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;DispatchQueue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;global&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;qos&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;session&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;startRunning&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kalau kita jalankan aplikasinya, maka hasilnya akan seperti ini 🎉&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Money Classifier App&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/image-classification-pada-ios/result.gif&quot; alt=&quot;Money Classifier App&quot; title=&quot;Money Classifier App&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Money Classifier App&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#whats-next&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;whats-next&quot;&gt;What&amp;#x27;s Next?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang kita telah mengetahui bagaimana cara membuat aplikasi Image Classification menggunakan Create ML dan Vision Framework serta mengintegrasikannya dengan AVFoundation agar kita bisa mengklasifikasi gambar secara real-time, selanjutnya mungkin kamu bisa kembangkan lagi project ini untuk mengklasifikasi nominal uang yang lain, atau menambahkan suara menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;AVSpeechSynthesizer&lt;/span&gt; ketika gambar terdeteksi, dll 😄&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Source code lengkapnya bisa kamu lihat melalui link berikut: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/alfinsyahruddin/MoneyClassifier&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/alfinsyahruddin/MoneyClassifier&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Mengubah Background Foto dengan Vision Framework]]></title><description><![CDATA[Tutorial Person Segmentation pada Vision Framework.]]></description><link>https://blog.alfin.dev/articlemengubah-background-foto-dengan-vision-framework</link><guid isPermaLink="false">https://blog.alfin.dev/articlemengubah-background-foto-dengan-vision-framework</guid><pubDate>Sat, 20 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-vision&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-vision&quot;&gt;Apa itu Vision?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Vision merupakan salah satu Framework dari Apple yang dapat kita gunakan untuk melakukan berbagai task terkait dengan Computer Vision, misalnya seperti mendeteksi wajah, mendeteksi teks dalam gambar, membaca barcode, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada iOS 15 Apple menambahkan fitur baru dalam Framework &lt;strong&gt;Vision&lt;/strong&gt; untuk melakukan Person Segmentation.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-image-segmentation&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-image-segmentation&quot;&gt;Apa itu Image Segmentation?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Person / &lt;strong&gt;Image Segmentation&lt;/strong&gt; itu hampir sama seperti &lt;strong&gt;Object Detection&lt;/strong&gt;, bedanya jika &lt;strong&gt;Object Detection&lt;/strong&gt; akan mengembalikan hasil berupa &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;bounding box&lt;/span&gt; suatu object, sedangkan &lt;strong&gt;Image Segmentation&lt;/strong&gt; akan mengembalikan hasil &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;pixel mask&lt;/span&gt; suatu object.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Object Detection vs Image Segmentation&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/mengubah-background-foto-dengan-vision-framework/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvNnBCYnEwMFIvZGV0ZWN0aW9uLXZzLXNlZ21lbnRhdGlvbi5wbmc.png&quot; alt=&quot;Object Detection vs Image Segmentation&quot; title=&quot;Object Detection vs Image Segmentation&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Object Detection vs Image Segmentation&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ada 2 macam Image Segmentation, yaitu:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-semantic-segmentation&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-semantic-segmentation&quot;&gt;1. Semantic Segmentation&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Semantic Segmentation&lt;/strong&gt; adalah proses untuk mendeteksi dan mengelompokkan objects berdasarkan kelas yang sama.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-instance-segmentation&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-instance-segmentation&quot;&gt;2. Instance Segmentation&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Instance Segmentation&lt;/strong&gt; adalah proses untuk mendeteksi suatu object tanpa mengelompokkannya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi jika kita melakukan &lt;strong&gt;Semantic Segmentation&lt;/strong&gt; pada foto hewan di atas, maka hasilnya adalah 1 &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;pixel mask&lt;/span&gt; yang berisi beberapa hewan. Sedangkan jika &lt;strong&gt;Instance Segmentation&lt;/strong&gt; hasilnya adalah 4 &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;pixel mask&lt;/span&gt; dari masing-masing hewan (seperti foto di atas).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Fitur &lt;strong&gt;Person Segmentation&lt;/strong&gt; yang ada pada Framework &lt;strong&gt;Vision&lt;/strong&gt; itu menggunakan &lt;strong&gt;Semantic Segmentation&lt;/strong&gt;. Jadi, hasil yang dikembalikan adalah 1 pixel mask saja meskipun ada beberapa orang dalam satu foto.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah, pada artikel kali ini kita akan belajar bagaimana cara mengubah background foto menggunakan pada Framework Vision.&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#download-starter-project&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;download-starter-project&quot;&gt;Download Starter Project&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pertama, Silakan download dulu starter project-nya di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/alfinsyahruddin/BGChanger&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/alfinsyahruddin/BGChanger&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Projectnya cukup sederhana, terdiri dari 2 halaman:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Home Page&lt;/strong&gt;: halaman utama untuk mengubah background foto.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Output Page&lt;/strong&gt;: halaman untuk menampilkan hasil dari Person Segmentation.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;BGChanger&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/mengubah-background-foto-dengan-vision-framework/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvUHg1OXlqV1cvaG9tZS5wbmc.png&quot; alt=&quot;BGChanger&quot; title=&quot;BGChanger&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;BGChanger&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mengikuti tutorial ini silakan siapkan iPhone fisik dengan versi iOS &amp;gt;= 15.0&lt;/p&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#person-segmentation&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;person-segmentation&quot;&gt;Person Segmentation&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah langkah-langkah untuk melakukan Person Segmentation:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Membuat &lt;strong&gt;Request&lt;/strong&gt; Person Segmentation&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Membuat &lt;strong&gt;Request Handler&lt;/strong&gt; untuk &lt;strong&gt;Request&lt;/strong&gt; tersebut&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Menjalankan &lt;strong&gt;Request&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Memproses hasil dari &lt;strong&gt;Request&lt;/strong&gt; tersebut&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-membuat-request&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-membuat-request&quot;&gt;1. Membuat Request&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan buka file &amp;quot;HomeViewModel.swift&amp;quot; kemudian import framework Vision.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;HomeViewModel.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Combine&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Vision&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian tambahkan kode berikut pada class &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;HomeViewModel&lt;/span&gt; :&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;HomeViewModel.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNGeneratePersonSegmentationRequest&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;di atas adalah kode untuk membuat instance dari &lt;strong&gt;Image Segmentation&lt;/strong&gt; request. &lt;strong&gt;Request&lt;/strong&gt; ini bisa digunakan berulang kali, jadi bisa kita gunakan untuk melakukan &lt;strong&gt;Image Segmentation&lt;/strong&gt; dari frame-frame suatu video / live camera.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-membuat-request-handler&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-membuat-request-handler&quot;&gt;2. Membuat Request Handler&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita akan membuat &lt;strong&gt;Request Handler&lt;/strong&gt; untuk &lt;strong&gt;Request&lt;/strong&gt; yang telah kita buat.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Silakan tambahkan kode berikut di dalam method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;changeBackground&lt;/span&gt; :&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;HomeViewModel.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;changeBackground&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; backgroundImage &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; backgroundImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cgImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; foregroundImage &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; foregroundImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cgImage&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Missing required images&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; requestHandler &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;VNImageRequestHandler&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        cgImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; foregroundImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        options&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Penjelasan kode:&lt;/strong&gt;&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pertama, kita ubah dulu tipe gambar kita dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UIImage&lt;/span&gt; ke &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CGImage&lt;/span&gt;, karena tipe gambar yang didukung oleh &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Vision&lt;/span&gt; adalah &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CGImage&lt;/span&gt;.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Kemudian, kita buat &lt;strong&gt;Request&lt;/strong&gt; Handler-nya yang berisi gambar yang ingin kita ubah background-nya.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-menjalankan-request&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-menjalankan-request&quot;&gt;3. Menjalankan Request&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita akan menjalankan &lt;strong&gt;Request&lt;/strong&gt; menggunakan &lt;strong&gt;Request Handler&lt;/strong&gt; yang telah kita buat.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tambahkan kode berikut di dalam method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;changeBackground&lt;/span&gt; :&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;HomeViewModel.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;   &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; requestHandler&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;perform&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; mask &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;results&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;first &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Error generating person segmentation mask.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; foreground &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cgImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; foregroundImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; maskImage &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cvPixelBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; mask&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;pixelBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; background &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cgImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; backgroundImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// TODO: Blend Images&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;catch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Error processing person segmentation request&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Penjelasan kode:&lt;/strong&gt;&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;perform(_:)&lt;/span&gt; digunakan untuk menjalankan / memproses &lt;strong&gt;Request&lt;/strong&gt; yang telah kita buat.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Lalu kita dapatkan hasil dari proses &lt;strong&gt;Image Segmentation&lt;/strong&gt; menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;request.results?.first&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-memproses-hasil&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-memproses-hasil&quot;&gt;4. Memproses Hasil&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terakhir, kita akan memproses hasil dari &lt;strong&gt;Image Segmentation&lt;/strong&gt;. Kita akan memasking gambar foreground agar backgroundnya menjadi transparan, kemudian kita gabungkan gambar yang telah di-masking tersebut dengan gambar background yang kita inginkan.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tambahkan kode berikut di dalam method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;changeBackground&lt;/span&gt; :&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;HomeViewModel.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; output &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;blendImages&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cgImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; backgroundImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    foreground&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cgImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; foregroundImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    mask&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cvPixelBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; mask&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;pixelBuffer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Error blending images&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; result &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;convertImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;output&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;output &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; result&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;showOutput &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Penjelasan kode:&lt;/strong&gt;&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Kita gabungkan antara foreground dan background menggunakan method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;blendImages&lt;/span&gt;, namun kita perlu ubah dulu tipe gambarnya menjadi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CIImage&lt;/span&gt; karena kita akan menggunakan framework &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Core Image&lt;/span&gt; untuk blending-nya.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Setelah kita dapat hasil dari proses blending, kita convert tipe gambarnya menjadi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UIImage&lt;/span&gt; agar bisa ditampilkan di &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;SwiftUI&lt;/span&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah implementasi dari method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;blendImages&lt;/span&gt; dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;convertImage&lt;/span&gt; :&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;HomeViewModel.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; context &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIContext&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;blendImages&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    foreground&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    mask&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIImage&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIImage&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; maskScaleX &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; foreground&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;extent&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;width &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; mask&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;extent&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;width&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; maskScaleY &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; foreground&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;extent&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;height &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; mask&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;extent&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;height&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; maskScaled &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; mask&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;transformed&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        by&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;__CGAffineTransformMake&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;maskScaleX&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; maskScaleY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; backgroundScaleX &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;foreground&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;extent&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;width &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;extent&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;width&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; backgroundScaleY &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;foreground&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;extent&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;height &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;extent&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; backgroundScaled &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; background&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;transformed&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        by&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;__CGAffineTransformMake&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;backgroundScaleX&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; backgroundScaleY&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; blendFilter &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIFilter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;blendWithMask&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    blendFilter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;inputImage &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; foreground&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    blendFilter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;maskImage &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; maskScaled&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    blendFilter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;backgroundImage &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; backgroundScaled&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; blendFilter&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;outputImage&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;convertImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIImage&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; cgImage &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; context&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;createCGImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; image&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;extent&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cgImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; cgImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;dan jangan lupa import &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CIFilterBuiltins&lt;/span&gt; dari framework &lt;strong&gt;Core Image&lt;/strong&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;HomeViewModel.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Combine&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Vision&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CoreImage&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CIFilterBuiltins&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Lalu jalankan project kita menggunakan iPhone fisik (tidak bisa di Simulator), maka hasilnya akan seperti ini:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Output&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/mengubah-background-foto-dengan-vision-framework/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvMVhTckZNTVYvb3V0cHV0LnBuZw.png&quot; alt=&quot;Output&quot; title=&quot;Output&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Output&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#memilih-quality-level&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;memilih-quality-level&quot;&gt;Memilih Quality Level&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Secara default, &lt;strong&gt;Segmentation Request&lt;/strong&gt; yang kita buat itu menggunakan Quality Level &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;accurate&lt;/span&gt;, berikut adalah beberapa Quality Level yang bisa kita gunakan:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;accurate&lt;/span&gt;: Jika kita ingin kualitas yang paling tinggi, Cocok untuk foto.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;balanced&lt;/span&gt;: Cocok untuk memproses video.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;fast&lt;/span&gt;: Cocok untuk memproses video streaming.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kamu ingin mengatur Quality Level, caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;request&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;qualityLevel &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;accurate&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Quality Level&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/mengubah-background-foto-dengan-vision-framework/quality-level.png&quot; alt=&quot;Quality Level&quot; title=&quot;Quality Level&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Quality Level&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun perlu diketahui bahwa semakin tinggi Quality Level-nya maka memory, frame size dan waktu yang dibutuhkan untuk memprosesnya juga akan semakin meningkat!&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Quality Level Tarde-Off&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/mengubah-background-foto-dengan-vision-framework/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvajVZV1dQMTkvcXVhbGl0eS1sZXZlbC10cmFkZW9mZi5wbmc.png&quot; alt=&quot;Quality Level Tarde-Off&quot; title=&quot;Quality Level Tarde-Off&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Quality Level Tarde-Off&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#whats-next&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;whats-next&quot;&gt;What&amp;#x27;s Next?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang kita telah mengetahui bagaimana cara mengubah background foto menggunakan framework &lt;strong&gt;Vision&lt;/strong&gt;, selanjutnya mungkin kamu bisa tambahkan fitur di project ini untuk mengubah background pada video secara real time, dll 😄&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Selain &lt;strong&gt;Vision&lt;/strong&gt;, kita juga bisa melakukan &lt;strong&gt;Person Segmentation&lt;/strong&gt; menggunakan beberapa framework berikut:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;AVFoundation&lt;/strong&gt;, melalui properti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;portraitEffectsMatte&lt;/span&gt; pada &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;AVCapturePhoto&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;ARKit&lt;/strong&gt;, melalui properti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;segmentationBuffer&lt;/span&gt; pada &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;ARFrame&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;strong&gt;Core Image&lt;/strong&gt;, menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CIFilter.personSegmentation()&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Referensi:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.apple.com/videos/play/wwdc2021/10040/&quot; class=&quot;css-17g8l3v&quot;&gt;https://developer.apple.com/videos/play/wwdc2021/10040/&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.kodeco.com/29650263-person-segmentation-in-the-vision-framework&quot; class=&quot;css-17g8l3v&quot;&gt;https://www.kodeco.com/29650263-person-segmentation-in-the-vision-framework&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Testable Code]]></title><description><![CDATA[Menulis kode yang mudah untuk di-test pada Swift.]]></description><link>https://blog.alfin.dev/articletestable-code</link><guid isPermaLink="false">https://blog.alfin.dev/articletestable-code</guid><pubDate>Mon, 01 May 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Terkadang kita sebagai Developer tidak menulis Unit Test bukan karena tidak mau, tapi mungkin karena codebase yang ada itu cukup sulit untuk di-test, apalagi jika sudah cukup panjang kode programnya, pasti akan banyak memakan waktu untuk melakukan refactoring agar bisa di-test.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Nah, itulah pentingnya untuk mempertimbangkan Testing dari awal, yang saya maksud bukan hanya mencentang &amp;quot;Include Tests&amp;quot; di Xcode pada saat kita membuat project baru :v namun kita juga harus mendesain kode kita dari awal agar mudah untuk di-test.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Karena mindset-nya sedikit berbeda, kalau kita tidak mempertimbangkan Testing dari awal mungkin kita akan pakai Singleton di mana-mana, melakukan hard-code terhadap dependensi (bukan melalui Dependency Injection), dll. sehingga kode kita akan sulit untuk di-test.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada artikel ini saya akan membagikan beberapa tips dalam menulis kode yang testable atau mudah untuk di-test pada bahasa pemrograman Swift.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#unit-test-tidak-ada-gunanya&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;unit-test-tidak-ada-gunanya&quot;&gt;Unit Test tidak ada gunanya?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Unit Test?&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/testable-code/aHR0cHM6Ly9pLnBvc3RpbWcuY2MveWRHZHlYRDgvbWVtZS5qcGc.jpg&quot; alt=&quot;Unit Test?&quot; title=&quot;Unit Test?&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Unit Test?&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Beberapa orang mungkin menganggap bahwa Unit Test itu tidak ada gunanya, hanya buang-buang waktu, kan lebih baik waktunya digunakan untuk mendevelop fitur?&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Padahal sebaliknya, Unit Test justru bisa saving our time! Misalnya jika kita ingin melakukan perubahan pada kode kita seperti menambahkan fitur baru, melakukan refactoring, dll. kita tidak perlu testing secara manual yang akan memakan banyak waktu hanya untuk memastikan aplikasi kita tetap berjalan dengan baik.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Unit Test juga bisa berfungsi sebagai dokumentasi dari program yang kita buat, karena jika kita melihat dari sisi kode kan hanya ada tipe datanya aja ya? nah dengan Unit Test, kita bisa melihat input dan output secara konkrit pada sebuah function.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dan dengan Unit test, kita bisa lebih percaya diri dengan kode yang kita tulis, karena jika kita melakukan perubahan yang ternyata menyebabkan bug pada aplikasi kita, maka bug tersebut akan terdeteksi lebih awal, jadi nggak akan sampai ke Team QA atau bahkan ke User.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#tips-menulis-testable-code&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;tips-menulis-testable-code&quot;&gt;Tips menulis Testable Code&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa tips dalam menulis kode yang mudah untuk di-test pada bahasa pemrograman Swift.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#1-memecah-function&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;1-memecah-function&quot;&gt;1. Memecah Function&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita mempunyai function yang terlalu panjang, mungkin bisa kita pecah menjadi beberapa function. karena Unit Test kan tujuannya untuk melakukan testing terhadap suatu unit kode, jadi kalau satu function memiliki banyak responsibility, maka akan sulit untuk di-test.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Contohnya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;❌ Contoh yang salah&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductService&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;https://website.com/api/products&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;JSONDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;✅ Contoh yang benar&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductService&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decodeProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;internal&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Data&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;https://website.com/api/products&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;internal&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decodeProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;JSONDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada contoh di atas, kita pecah function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;getProducts&lt;/span&gt; menjadi 2 function, yaitu:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;fetchProducts&lt;/span&gt; untuk melakukan Network Request.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;function &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;decodeProducts&lt;/span&gt; untuk Parsing JSON.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sehingga kita bisa test secara terisolasi terhadap masing-masing function tersebut.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;💎 Unit Tests&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTest&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@testable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SampleApp&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;final&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductServiceTests&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTestCase&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;test_fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;test_decodeProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; json &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;        [&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;            {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;                &amp;quot;name&amp;quot;: &amp;quot;iPhone 15&amp;quot;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;                &amp;quot;price&amp;quot;: 20000000&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;            }&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;        ]&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;        &amp;quot;&amp;quot;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; json&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;using&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;utf8&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sut &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sut&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decodeProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTAssertEqual&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                products&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;iPhone 15&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; price&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;20_000_000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;catch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTFail&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;localizedDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#2-hindari-singleton-gunakan-dependency-injection&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;2-hindari-singleton-gunakan-dependency-injection&quot;&gt;2. Hindari Singleton, gunakan Dependency Injection!&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebisa mungkin kita harus menghindari Singleton, agar lebih mudah jika kita ingin melakukan mocking atau me-replace suatu dependensi pada saat testing.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Solusinya kita bisa gunakan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Dependency Injection&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Dependency Injection&lt;/span&gt; adalah teknik untuk memindahkan proses pembuatan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;instance&lt;/span&gt; suatu dependensi dari dalam &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;class&lt;/span&gt; atau &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;struct&lt;/span&gt; menuju ke luar. Jadi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;class&lt;/span&gt; atau &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;struct&lt;/span&gt; tersebut hanya menerima &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;instance&lt;/span&gt;, bukan yang membuat &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;instance&lt;/span&gt; dari suatu dependensi.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;❌ Contoh yang salah&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductService&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decodeProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;internal&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Data&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;https://website.com/api/products&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;internal&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decodeProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;JSONDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;✅ Contoh yang benar&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductService&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; urlSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; jsonDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;JSONDecoder&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;urlSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; jsonDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;JSONDecoder&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;JSONDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;urlSession &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; urlSession&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;jsonDecoder &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; jsonDecoder&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decodeProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;internal&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Data&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;https://website.com/api/products&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; urlSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;internal&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decodeProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; jsonDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Agar lebih mudah dalam menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;ProductService&lt;/span&gt;, kita bisa tambahkan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Default Parameter&lt;/span&gt; pada Initializer-nya.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Default Parameter&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductService&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; urlSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; jsonDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;JSONDecoder&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;urlSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; jsonDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;JSONDecoder&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;JSONDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;urlSession &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; urlSession&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;jsonDecoder &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; jsonDecoder&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, apabila kita ingin mocking response pada &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;urlSession&lt;/span&gt;, maka akan menjadi lebih mudah, contohnya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;💎 Unit Tests&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTest&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@testable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SampleApp&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;final&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductServiceTests&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTestCase&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;test_fetchProducts_failed&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MockURLProtocol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;requestHandler &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; response &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;HTTPURLResponse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;https://mock.com&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; statusCode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; httpVersion&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; headerFields&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; configuration &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSessionConfiguration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        configuration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;protocolClasses &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MockURLProtocol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; urlSession &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;configuration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; configuration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sut &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;urlSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; urlSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sut&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTFail&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;catch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTAssert&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#3-dependency-inversion&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;3-dependency-inversion&quot;&gt;3. Dependency Inversion&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dependency Inversion adalah satu dari 5 prinsip dalam &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://en.wikipedia.org/wiki/SOLID&quot; class=&quot;css-17g8l3v&quot;&gt;SOLID&lt;/a&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sederhananya, jika kita punya Object A yang mempunyai dependensi ke Object B, maka Object A tidak boleh punya dependensi langsung ke Object B, tetapi harus melalui &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;abstraction&lt;/span&gt;. di Swift, kita bisa menggunakan protocol untuk membuat &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;abstraction&lt;/span&gt; tersebut.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;❌ Contoh yang salah&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductViewModel&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; productService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductService&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;productService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;productService &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; productService&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getTotalProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; productService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;✅ Contoh yang benar&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;protocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductServiceProtocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductViewModel&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; productService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductServiceProtocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;productService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductServiceProtocol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;productService &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; productService&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getTotalProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; productService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada contoh di atas, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;ProductViewModel&lt;/span&gt; tidak mempunyai dependensi langsung ke &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;ProductService&lt;/span&gt;, namun melalui sebuah abstraction bernama &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;ProductServiceProtocol&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi, kita akan lebih mudah untuk melakukan mocking pada saat Testing nantinya.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;💎 Unit Tests&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTest&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@testable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SampleApp&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MockProductService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductServiceProtocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Product&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;iPhone 15&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; price&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;20_000_000&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;final&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductViewModelTests&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTestCase&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;test_getTotalProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sut &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductViewModel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            productService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MockProductService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; total &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sut&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getTotalProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTAssertEqual&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;total&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;catch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTFail&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;localizedDescription&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#4-error-handling&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;4-error-handling&quot;&gt;4. Error Handling&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita bisa membuat Custom Error agar errornya lebih jelas dan terdefinisi dengan baik sehingga kita bisa lebih spesifik dalam pengecekan tipe error pada saat menulis Unit Test.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;❌ Contoh yang salah&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;internal&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Data&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; urlSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;✅ Contoh yang benar&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AppError&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; invalidURL&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; failedToFetchProducts&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; failedToDecodeProducts&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;internal&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Data&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;guard&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;https://website.com/api/products&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;else&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throw&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AppError&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;invalidURL&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; urlSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;catch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throw&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AppError&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;failedToFetchProducts&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;💎 Unit Tests&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;test_fetchProducts_failed&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MockURLProtocol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;requestHandler &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; request &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; response &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;HTTPURLResponse&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;https://mock.com&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; statusCode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;500&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; httpVersion&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; headerFields&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;response&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token nil constant&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; configuration &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSessionConfiguration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;default&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    configuration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;protocolClasses &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MockURLProtocol&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; urlSession &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;init&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;configuration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; configuration&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sut &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ProductService&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;urlSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; urlSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sut&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTFail&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;catch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTAssertEqual&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;error &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;as&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AppError&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AppError&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;failedToFetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#5-accessibility-identifier&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;5-accessibility-identifier&quot;&gt;5. Accessibility Identifier&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Yang terakhir, kita bisa menambahkan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Accessibility Identifier&lt;/span&gt; pada suatu view agar lebih ringkas dan lebih konsisten pada saat melakukan query untuk UI Test.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Misalnya kita punya &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UILabel&lt;/span&gt; yang berisi text deskripsi yang sangat panjang, nah dengan menambahkan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Accessbility Identifier&lt;/span&gt;, kita hanya perlu query berdasarkan ID nya saja dan jika kita ingin mengubah text nya, kita tidak perlu mengubah query kita.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;❌ Contoh yang salah&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; descriptionLabel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UILabel&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; label &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UILabel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;text &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;numberOfLines &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; label&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;✅ Contoh yang benar&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; descriptionLabel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UILabel&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; label &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UILabel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;text &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;numberOfLines &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    label&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;accessibilityIdentifier &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;description&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; label&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;💎 UI Tests&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTest&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;final&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SampleAppUITests&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTestCase&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;test_descriptionLabel_exists&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; app &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCUIApplication&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        app&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;launch&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; descriptionLabel &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; app&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;staticTexts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;description&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTAssertTrue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;descriptionLabel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;exists&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Itulah tadi beberapa tips dalam menulis kode yang mudah untuk di-test pada Swift. Meskipun saat ini kita belum ingin menambahkan Unit Testing pada aplikasi kita karena alasan tertentu, menurutku kita tetap harus mendesain kode kita agar mudah untuk di-test. Sehingga jika kita ingin menambahkan Unit Test di masa depan nanti, maka akan menjadi lebih mudah dan tidak perlu banyak refactor.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Referensi:&lt;/strong&gt;&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=amVstam84Xo&amp;amp;t=2673s&quot; class=&quot;css-17g8l3v&quot;&gt;https://www.youtube.com/watch?v=amVstam84Xo&amp;amp;t=2673s&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=m5I1lctSXf8&quot; class=&quot;css-17g8l3v&quot;&gt;https://www.youtube.com/watch?v=m5I1lctSXf8&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.youtube.com/watch?v=ELtwTes7T-A&quot; class=&quot;css-17g8l3v&quot;&gt;https://www.youtube.com/watch?v=ELtwTes7T-A&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Swift Continuations]]></title><description><![CDATA[Mengubah Completion Handler menjadi async/await pada Swift]]></description><link>https://blog.alfin.dev/articleswift-continuations</link><guid isPermaLink="false">https://blog.alfin.dev/articleswift-continuations</guid><pubDate>Fri, 24 Mar 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#completion-handler&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;completion-handler&quot;&gt;Completion Handler&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sebelum adanya &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;async/await&lt;/span&gt; pada Swift, kita biasanya menggunakan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Completion Handler&lt;/span&gt; untuk menjalankan sebuah code setelah suatu task selesai dijalankan.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Completion Handler&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;completion&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@escaping&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Void&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;https://website.com/api/products&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;dataTask&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; response&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;JSONDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;completion&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;products&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;completion&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;resume&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;fetchProducts &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;products&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun, &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Completion Handler&lt;/span&gt; memiliki kekurangan yaitu ketika kita menggunakan nested &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Completion Handler&lt;/span&gt;, code kita akan sulit untuk dibaca karena indentasi code-nya akan semakin dalam, kondisi ini sering disebut sebagai &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Callback Hell&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Callback Hell&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/swift-continuations/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvQm5zYzZQNlAvY2FsbGJhY2staGVsbC5wbmc.png&quot; alt=&quot;Callback Hell&quot; title=&quot;Callback Hell&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Callback Hell&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Tapi untungnya Swift memiliki fitur untuk mengubah &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;function&lt;/span&gt; yang menggunakan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Completion Handler&lt;/span&gt; agar menjadi &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;async/await&lt;/span&gt; tanpa perlu memodifikasi code asli dari &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;function&lt;/span&gt; tersebut dan tanpa perlu rewrite code yang sudah ada. Sehingga kita bisa gunakan fitur tersebut untuk code yang bukan milik kita, dari framework lain misalnya.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jadi konsepnya, kita akan buat satu &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;function&lt;/span&gt; baru untuk membungkus &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;function&lt;/span&gt; yang menggunakan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Completion Handler&lt;/span&gt; tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita akan bungkus menggunakan beberapa &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;functions&lt;/span&gt; berikut:&lt;/p&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;withCheckedContinuation&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;withCheckedThrowingContinuation&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;withUnsafeContinuation&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;withUnsafeThrowingContinuation&lt;/span&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#withcheckedcontinuation&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;withcheckedcontinuation&quot;&gt;withCheckedContinuation&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh penggunaan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;withCheckedContinuation&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;withCheckedContinuation&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;https://website.com/api/products&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; withCheckedContinuation &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; continuation &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;dataTask&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; response&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;JSONDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                    continuation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;resume&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;returning&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            continuation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;resume&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;returning&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;resume&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita gunakan method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;continuation.resume(returning:)&lt;/span&gt; untuk me-return value.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ada 2 hal yang harus diperhatikan ketika menggunakan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Continuation&lt;/span&gt;:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Kita hanya boleh menjalankan method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;continuation.resume&lt;/span&gt; satu kali saja. Jika tidak, maka akan muncul error seperti ini:&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;_Concurrency/CheckedContinuation.swift:164: Fatal error: SWIFT TASK CONTINUATION MISUSE: fetchProducts() tried to resume its continuation more than once, returning []!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;ol start=&quot;2&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Kita harus memanggil method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;continuation.resume&lt;/span&gt;. Jika tidak, maka akan muncul error seperti ini:&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;SWIFT TASK CONTINUATION MISUSE: fetchProducts() leaked its continuation!&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#withcheckedthrowingcontinuation&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;withcheckedthrowingcontinuation&quot;&gt;withCheckedThrowingContinuation&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;withCheckedThrowingContinuation&lt;/span&gt; itu sama seperti function sebelumnya, tapi dia bisa throwing error menggunakan method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;continuation.resume(throwing:)&lt;/span&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh penggunaan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;withCheckedThrowingContinuation&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;withCheckedThrowingContinuation&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ErrorType&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; networkError&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;async&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;URL&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;string&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;https://website.com/api/products&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;!&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; withCheckedThrowingContinuation &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; continuation &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;URLSession&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;shared&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;dataTask&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; response&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; error &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;if&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;?&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;JSONDecoder&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decode&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; from&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; data&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                    continuation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;resume&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;returning&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            continuation&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;resume&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;throwing&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ErrorType&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;networkError&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;resume&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;do&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; products &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;await&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;fetchProducts&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;products&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;catch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;error&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#withunsafecontinuation--withunsafethrowingcontinuation&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;withunsafecontinuation--withunsafethrowingcontinuation&quot;&gt;withUnsafeContinuation &amp;amp; withUnsafeThrowingContinuation&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ada 2 tipe &lt;strong&gt;Swift Continuations&lt;/strong&gt;, yaitu &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Checked&lt;/span&gt; (yang telah kita bahas sebelumnya) dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Unsafe&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Bedanya, yang &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Unsafe&lt;/span&gt; itu tidak ada pengecekan-pengecekan pada saat runtime, seperti pengecekan harus memanggil method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;continuation.resume&lt;/span&gt;, dll. sehingga jika ada masalah tidak akan terdeteksi lebih awal dan kita tidak mendapatkan informasi yang jelas pada Crash Log.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Benefit ketika kita menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Unsafe&lt;/span&gt; adalah performa aplikasi kita menjadi sedikit lebih cepat, karena tidak ada pengecekan-pengecekan tersebut pada saat runtime.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#checked-vs-unsafe&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;checked-vs-unsafe&quot;&gt;Checked vs Unsafe&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Apple merekomendasikan kita untuk menggunakan tipe &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Checked&lt;/span&gt; pada saat proses development. Lalu setelah kita berhasil menjalankan code kita tanpa muncul error atau warning, dan setelah kita &lt;strong&gt;yakin&lt;/strong&gt; bahwa code kita sudah benar, maka kita bisa mengubahnya menjadi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Unsafe&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kalau saya sendiri lebih memilih untuk selalu menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Checked&lt;/span&gt;, bahkan ketika saya sudah &lt;strong&gt;yakin&lt;/strong&gt; bahwa tidak akan muncul runtime error pada saat pengecekan. Selain karena lebih aman, juga agak repot kalau harus mengganti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Checked&lt;/span&gt; menjadi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Unsafe&lt;/span&gt; secara manual dan mengembalikan menjadi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Checked&lt;/span&gt; lagi apabila saya melakukan perubahan pada code tersebut. 😅&lt;/p&gt;&lt;style data-emotion=&quot;css u8209z&quot;&gt;.css-u8209z{padding-left:48px;padding-right:48px;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-u8209z&quot;&gt;&lt;style data-emotion=&quot;css z77zqz&quot;&gt;.css-z77zqz{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:500;font-size:1.25rem;line-height:1.6;color:rgba(0,0,0,0.5);font-size:16px;text-indent:-0.45em;}.css-z77zqz::before{content:open-quote;}.css-z77zqz::after{content:close-quote;}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-h6 css-z77zqz&quot;&gt;Making your code less safe based on assumptions is never a great idea.&lt;/h6&gt;&lt;style data-emotion=&quot;css 18k19ow&quot;&gt;.css-18k19ow{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.75;color:rgba(0,0,0,0.25);}&lt;/style&gt;&lt;h6 class=&quot;MuiTypography-root MuiTypography-subtitle1 css-18k19ow&quot;&gt;Donny Wals&lt;/h6&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[DocC Tutorial]]></title><description><![CDATA[Dokumentasikan project-mu dengan DocC!]]></description><link>https://blog.alfin.dev/articledocc-tutorial</link><guid isPermaLink="false">https://blog.alfin.dev/articledocc-tutorial</guid><pubDate>Sun, 19 Mar 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-docc-&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-docc-&quot;&gt;Apa itu DocC ?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;DocC atau Documentation Compiler, adalah tool dari Apple yang bisa kita gunakan dalam membuat Developer Documentation untuk aplikasi, framework, dan package yang kita buat.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kamu pernah membaca dokumentasi dari UIKit, Core Data, MapKit, atau bahkan &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.apple.com/tutorials/swiftui/&quot; class=&quot;css-17g8l3v&quot;&gt;Tutorial SwiftUI&lt;/a&gt; yang sangat interaktif, semua itu dibuat menggunakan DocC.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#cara-kerja-docc&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;cara-kerja-docc&quot;&gt;Cara kerja DocC&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Diagram DocC&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvcnlKeVc2eG0vZG9jYy1kaWFncmFtLmpwZw.jpg&quot; alt=&quot;Diagram DocC&quot; title=&quot;Diagram DocC&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Diagram DocC&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;DocC menghasilkan dokumen dari 2 input, yang pertama adalah dari Source Code kita, kedua yaitu dari DocC Catalog (opsional), DocC Catalog adalah file dokumentasi yang kita buat secara custom, berisi kumpulan artikel, extension, serta tutorial terkait dengan framework atau package yang kita buat.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk mempublikasikan dokumentasi yang telah kita buat, kita bisa mengirimkan file &lt;strong&gt;.doccarchive&lt;/strong&gt; secara langsung, yang nantinya bisa dibuka melalui Xcode. Atau opsi kedua, kita bisa deploy ke web server, karena file &lt;strong&gt;.doccarchive&lt;/strong&gt; berisi kumpulan file &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;html&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;js&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;css&lt;/span&gt;, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Isi file .doccarchive&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvUDVwaDJIdFEvU2NyZWVuc2hvdC0yMDIzLTAzLTE5LWF0LTEyLTE1LTIzLnBuZw.png&quot; alt=&quot;Isi file .doccarchive&quot; title=&quot;Isi file .doccarchive&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Isi file .doccarchive&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#kelebihan-docc&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;kelebihan-docc&quot;&gt;Kelebihan DocC&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa kelebihan DocC dibandingkan dengan tools lain:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Auto Generate dari Source Code&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Auto Completion&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Terintegrasi dengan Xcode&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Interactive Tutorial&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Official dari Apple&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-dokumentasi&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-dokumentasi&quot;&gt;Membuat Dokumentasi&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pertama silakan buka salah satu project-mu, atau bisa juga menggunakan sample project yang telah saya buat untuk mendemokan tutorial ini, sebuah Swift Package untuk menghitung Body Mass Index (BMI).&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kamu bisa download di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/alfinsyahruddin/bmi-calculator/tree/starter&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/alfinsyahruddin/bmi-calculator/tree/starter&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Di project tersebut ada 2 branch, pilih yang &lt;strong&gt;starter&lt;/strong&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk membuat dokumentasi, ada 2 cara:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih menu Product -&amp;gt; Build Documentation&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Atau menggunakan shortcut: ctrl + shift + command + D&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Documentation&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvY0NmME15ZkwvU2NyZWVuc2hvdC0yMDIzLTAzLTE5LWF0LTEyLTUzLTIyLnBuZw.png&quot; alt=&quot;Documentation&quot; title=&quot;Documentation&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Documentation&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Maka, dokumentasi akan terbuat secara otomatis dari source code kita! 🎉&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#syntax-docc&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;syntax-docc&quot;&gt;Syntax DocC&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;DocC mempunyai beberapa syntax atau aturan penulisan dalam pembuatan dokumentasi, bernama &amp;quot;Documentation Markup&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#code-comments&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;code-comments&quot;&gt;Code Comments&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Seperti yang telah kita ketahui, ada 2 input yang digunakan DocC untuk membuat dokumen. Yang pertama adalah dari source code kita, nah kita bisa menambahkan deskripsi dan penjelasan pada source code kita melalui Code Comments agar terdokumentasi dengan lebih baik.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#description&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;description&quot;&gt;Description&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menambahkan deskripsi ada 2 cara, yaitu menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;///&lt;/span&gt; atau &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;/**&lt;/span&gt; diakhiri dengan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;*/&lt;/span&gt;, contohnya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;/// ``BmiStatus`` is an enum of Body Mass Index (BMI) statuses.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BmiStatus&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; underWeight&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; normal&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; overWeight&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; obese&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt; ``BmiError`` is an enum of Body Mass Index (BMI) Errors.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt; */&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BmiError&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Error&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; invalidIndex&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#function-attributes&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;function-attributes&quot;&gt;Function Attributes&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita juga bisa menambahkan beberapa atribut untuk function atau method yang kita buat, seperti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Parameters&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Returns&lt;/span&gt;, dan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Throws&lt;/span&gt;.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;/**&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;This method is for calculating Body Mass Index (BMI).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;display:inline-block;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;- Parameters:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;    - weight: The weight of body (in kilograms).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;    - height: The height of body (in meters).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;display:inline-block;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;- Returns: The result of BMI calculation.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;display:inline-block;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;- Throws: `BmiError.invalidIndex` if failed to get status due to invalid BMI index.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;*/&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;public&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;calculateBmi&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    weight&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Double&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Double&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;throws&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BmiResult&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; index &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; weight &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;/&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;pow&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;height&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;BmiResult&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        index&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; index&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        status&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;try&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;getBmiStatus&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;index&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dan jika orang lain menekan &amp;quot;command + click&amp;quot; pada function kita, maka hasilnya akan seperti ini:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Preview&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2Mva1hiWDBHRHAvU2NyZWVuc2hvdC0yMDIzLTAzLTE5LWF0LTE2LTA1LTI1LnBuZw.png&quot; alt=&quot;Preview&quot; title=&quot;Preview&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Preview&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#docc-catalog&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;docc-catalog&quot;&gt;DocC Catalog&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;DocC Catalog adalah file dokumentasi yang kita buat secara custom, berisi kumpulan artikel, extension, serta tutorial terkait dengan framework atau package yang kita buat.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk membuat DocC Catalog, caranya kita pilih menu &amp;quot;File -&amp;gt; New -&amp;gt; File&amp;quot; atau ketika kita baru pertama kali membuat project, centang opsi &amp;quot;Include Documentation&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa syntax untuk menulis dokumentasi pada DocC Catalog:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#markdown&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;markdown&quot;&gt;Markdown&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Pada dasarnya DocC menggunakan Markdown sebagai Syntax untuk penulisan dokumentasi. Kamu bisa belajar Markdown dari sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://www.markdownguide.org/cheat-sheet/&quot; class=&quot;css-17g8l3v&quot;&gt;https://www.markdownguide.org/cheat-sheet/&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#image&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;image&quot;&gt;Image&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menambahkan gambar pada dokumentasi kita, caranya kita drag &amp;amp; drop file gambar kita ke dalam folder &amp;quot;Resources&amp;quot;, kemudian kita tampilkan menggunakan syntax Markdown.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-md css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token url&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;![&lt;/span&gt;&lt;span class=&quot;token url content&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;Package Icon&lt;/span&gt;&lt;span class=&quot;token url&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;](/assets/article-images/docc-tutorial/aWNvbg.icon)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun, format nama file-nya terdapat sedikit perbedaan dengan Markdown biasa:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvcTdrVmhESjIvU2NyZWVuc2hvdC0yMDIzLTAzLTE5LWF0LTEzLTQ1LTAzLnBuZw.png&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;table&gt;&lt;thead&gt;&lt;tr&gt;&lt;th&gt;Component&lt;/th&gt;&lt;th&gt;Description&lt;/th&gt;&lt;/tr&gt;&lt;/thead&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;Image name&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Required&lt;/strong&gt;. Nama gambar yang ingin kita tampilkan (harus unik).&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Appearance&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Optional&lt;/strong&gt;. Tambahkan &lt;strong&gt;~dark&lt;/strong&gt; untuk gambar yang akan ditampilkan pada mode gelap.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;Display scale&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Optional&lt;/strong&gt;. Seberapa besar ukuran gambar yang akan ditampilkan. @1x, @2x, atau @3x.&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;File extension&lt;/td&gt;&lt;td&gt;&lt;strong&gt;Required&lt;/strong&gt;. Tipe gambar, seperti png atau jpg.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#ref-article&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;ref-article&quot;&gt;Ref Article&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita ingin membuat link referensi ke artikel yang kita buat, caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-md css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token tag punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token tag namespace&quot; style=&quot;color:rgb(178, 204, 214)&quot;&gt;doc:&lt;/span&gt;&lt;span class=&quot;token tag&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;Installation&lt;/span&gt;&lt;span class=&quot;token tag punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#ref-symbol&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1x6dhwh&quot;&gt;.css-1x6dhwh{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:3rem;line-height:1.167;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1em;}&lt;/style&gt;&lt;h3 class=&quot;MuiTypography-root MuiTypography-h3 css-1x6dhwh&quot; id=&quot;ref-symbol&quot;&gt;Ref Symbol&lt;/h3&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita ingin membuat link referensi ke Symbol seperti &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Class&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Method&lt;/span&gt;, &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Enum&lt;/span&gt;, dll. Caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;``BmiCalculator``&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;``BmiCalculator/BmiStatus``&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;``BmiCalculator/BmiCalculator/calculateBmi(weight:height:)``&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#kustomisasi-landing-page&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;kustomisasi-landing-page&quot;&gt;Kustomisasi Landing Page&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Landing Page adalah halaman awal dari dokumentasi kita, nah DocC memungkinkan kita untuk mengkustomisasi Landing Page tersebut, seperti menambahkan gambar, overview, topics, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Landing Page&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2Mvd0I5YjJZNWYvZG9jYy1sYW5kaW5nLXBhZ2UuanBn.jpg&quot; alt=&quot;Landing Page&quot; title=&quot;Landing Page&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Landing Page&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk membuat custom Landing Page, caranya seperti ini:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Klik &amp;quot;Documentation.docc&amp;quot; pada Project Navigator.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih File -&amp;gt; New -&amp;gt; File&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih &amp;quot;Empty&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pastikan nama file-nya sama dengan nama Target dari Product Module, misalnya nama targetnya adalah &amp;quot;BmiCalculator&amp;quot; maka berilah nama &amp;quot;BmiCalculator.md&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Terakhir, di file &amp;quot;BmiCalculator.md&amp;quot; bagian paling atas, tambahkan header yang berisi nama target dengan diapit 2 backslash seperti ini:&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;BmiCalculator.md&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-md css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token title important punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;token title important&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token code keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;``BmiCalculator``&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;BmiCalculator is a Swift package for calculate Body Mass Index (BMI).&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah itu kamu bisa mengedit file Landing Page tersebut sesuai dengan kebutuhan.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-artikel&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-artikel&quot;&gt;Membuat Artikel&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk membuat artikel, caranya kita pilih &amp;quot;File -&amp;gt; New -&amp;gt; File&amp;quot; kemudian pilih &amp;quot;Article File&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Artikel&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvNlRKQzZtc3YvU2NyZWVuc2hvdC0yMDIzLTAzLTE5LWF0LTE0LTM3LTU2LnBuZw.png&quot; alt=&quot;Artikel&quot; title=&quot;Artikel&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Artikel&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#grouping-artikel&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;grouping-artikel&quot;&gt;Grouping Artikel&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita juga bisa mengelompokkan artikel-artikel yang telah kita buat, silakan buka file Landing Page yang telah kamu buat, dan tambahkan teks berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;BmiCalculator.md&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-md css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;...&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token title important punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;##&lt;/span&gt;&lt;span class=&quot;token title important&quot;&gt; Topics&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token title important punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;###&lt;/span&gt;&lt;span class=&quot;token title important&quot;&gt; Getting Started&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token list punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token tag punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token tag namespace&quot; style=&quot;color:rgb(178, 204, 214)&quot;&gt;doc:&lt;/span&gt;&lt;span class=&quot;token tag&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;Installation&lt;/span&gt;&lt;span class=&quot;token tag punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token title important punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;###&lt;/span&gt;&lt;span class=&quot;token title important&quot;&gt; Tutorials&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token list punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token tag punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token tag namespace&quot; style=&quot;color:rgb(178, 204, 214)&quot;&gt;doc:&lt;/span&gt;&lt;span class=&quot;token tag&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;CalculateBmi&lt;/span&gt;&lt;span class=&quot;token tag punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token list punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token tag punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token tag namespace&quot; style=&quot;color:rgb(178, 204, 214)&quot;&gt;doc:&lt;/span&gt;&lt;span class=&quot;token tag&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;GetBmiStatus&lt;/span&gt;&lt;span class=&quot;token tag punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Grouping Artikel&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvN0x4TVRkNTEvU2NyZWVuc2hvdC0yMDIzLTAzLTE5LWF0LTE0LTM3LTI5LnBuZw.png&quot; alt=&quot;Grouping Artikel&quot; title=&quot;Grouping Artikel&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Grouping Artikel&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#membuat-extension&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;membuat-extension&quot;&gt;Membuat Extension&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita ingin menambahkan penjelasan, gambar, dll pada Symbol (class, struct, enum, dll) caranya seperti ini:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Klik &amp;quot;Documentation.docc&amp;quot; pada Project Navigator.&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih File -&amp;gt; New -&amp;gt; File&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih &amp;quot;Extension File&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pastikan nama file-nya sama dengan nama Symbol yang ingin kita buat extension-nya&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Setelah itu sesuaikan judul dengan ref symbol nya, dan tambahkan code berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language- css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;@Metadata {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    @DocumentationExtension(mergeBehavior: append)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Selain &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;append&lt;/span&gt;, ada juga opsi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;override&lt;/span&gt; jika kita ingin meng-override Code Comment yang sudah ada pada source code tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh jika kita ingin membuat Extension untuk enum &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;BmiStatus&lt;/span&gt; :&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;BmiStatus.md&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-md css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token title important punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;token title important&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token code keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;`BmiCalculator/BmiStatus`&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;@Metadata {&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    @DocumentationExtension(mergeBehavior: append)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;}&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token title important punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;##&lt;/span&gt;&lt;span class=&quot;token title important&quot;&gt; Formula&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token list punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; underWeight: &amp;lt; 18.5&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token list punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; normal: 18.5 &amp;lt;= 25&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token list punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; overWeight: 25 &amp;lt;= 30&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token list punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; obese: &amp;gt; 30&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Extension&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvNjNERHduMG0vU2NyZWVuc2hvdC0yMDIzLTAzLTE5LWF0LTE0LTQ5LTA0LnBuZw.png&quot; alt=&quot;Extension&quot; title=&quot;Extension&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Extension&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#preview-versi-web&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;preview-versi-web&quot;&gt;Preview Versi Web&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk melihat versi web dari dokumentasi yang telah kita buat, silakan buka terminal dan ikuti langkah berikut:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Jalankan command berikut untuk generate file &amp;quot;.doccarchive&amp;quot; di dalam folder &amp;quot;docc&amp;quot;:&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-sh css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;xcodebuild docbuild -scheme BmiCalculator -derivedDataPath docc -destination &amp;#x27;generic/platform=iOS&amp;#x27;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;ol start=&quot;2&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Jalankan command berikut untuk mengubah file &amp;quot;.doccarchive&amp;quot; menjadi file web yang diakses, ke dalam folder &amp;quot;docs&amp;quot;:&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-sh css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;$(xcrun --find docc) process-archive transform-for-static-hosting docc/Build/Products/Debug-iphoneos/BmiCalculator.doccarchive --output-path docs;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;ol start=&quot;3&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Serve file web dari folder &amp;quot;docs&amp;quot; agar bisa diakses:&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-sh css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;python3 -m http.server --dir=docs&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian buka &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;http://localhost:8000/documentation/bmicalculator/&quot; class=&quot;css-17g8l3v&quot;&gt;http://localhost:8000/documentation/bmicalculator/&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;http://localhost:8000/documentation/bmicalculator/&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvaGp3ZHBQcm4vU2NyZWVuc2hvdC0yMDIzLTAzLTE5LWF0LTE1LTEyLTA4LnBuZw.png&quot; alt=&quot;http://localhost:8000/documentation/bmicalculator/&quot; title=&quot;http://localhost:8000/documentation/bmicalculator/&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;http://localhost:8000/documentation/bmicalculator/&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#deploy-ke-github-pages&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;deploy-ke-github-pages&quot;&gt;Deploy ke Github Pages&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, kita akan mencoba untuk melakukan deployment ke Github Pages menggunakan CI/CD. Agar tiap kali kita push ke github, dokumentasi kita juga akan terdeploy secara otomatis!&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pertama, buka repository Github-mu, kemudian klik &amp;quot;Settings&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih menu &amp;quot;Pages&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Di bagian Build and deployment -&amp;gt; Source pilih &amp;quot;Github Actions&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Github Actions&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvMjYyYlBoWlIvU2NyZWVuc2hvdC0yMDIzLTAzLTE5LWF0LTE1LTE3LTQ4LnBuZw.png&quot; alt=&quot;Github Actions&quot; title=&quot;Github Actions&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Github Actions&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;ol start=&quot;4&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Buat file baru bernama &amp;quot;publish-pages.yml&amp;quot; di dalam folder &amp;quot;.github/workflows/&amp;quot; yang berisi code berikut:&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;publish-pages.yml&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-yml css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;# Name your workflow.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Deploy DocC&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;on&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;# Runs on pushes targeting the default branch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;push&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;branches&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;main&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;# Sets permissions of the GITHUB_TOKEN to allow deployment to GitHub Pages&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;permissions&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;contents&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; read&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;pages&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; write&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;id-token&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; write&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;# Allow one concurrent deployment&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;concurrency&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;group&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;pages&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;cancel-in-progress&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean important&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;true&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;jobs&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;# Single deploy job since we&amp;#x27;re just deploying&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;deploy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;environment&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;# Must be set to this for deploying to GitHub Pages&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; github&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;pages&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;url&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; $&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; steps.deployment.outputs.page_url &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;runs-on&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; macos&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;steps&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Checkout 🛎️&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; actions/checkout@v3&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Build DocC&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;run&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;|&lt;/span&gt;&lt;span class=&quot;token scalar string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token scalar string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;          xcodebuild docbuild -scheme BmiCalculator \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token scalar string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;            -derivedDataPath /tmp/docbuild \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token scalar string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;            -destination &amp;#x27;generic/platform=iOS&amp;#x27;;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token scalar string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;          $(xcrun --find docc) process-archive \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token scalar string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;            transform-for-static-hosting /tmp/docbuild/Build/Products/Debug-iphoneos/BmiCalculator.doccarchive \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token scalar string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;            --hosting-base-path bmi-calculator \&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token scalar string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;            --output-path docs;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token scalar string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;          echo &amp;quot;&amp;lt;script&amp;gt;window.location.href += \&amp;quot;/documentation/bmicalculator\&amp;quot;&amp;lt;/script&amp;gt;&amp;quot; &amp;gt; docs/index.html;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;37&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Upload artifact&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; actions/upload&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;pages&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;artifact@v1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;with&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;          &lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;# Upload only docs directory&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;41&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;          &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;path&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;docs&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;name&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; Deploy to GitHub Pages&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;43&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;id&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; deployment&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;44&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token key atrule&quot;&gt;uses&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; actions/deploy&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;pages@v1&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;ol start=&quot;5&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Kemudian lakukan commit &amp;amp; push ke Github!&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Maka proses deployment akan berjalan dan tunggu prosesnya sampai selesai.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Actions&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvMVI4d0w3SnYvU2NyZWVuc2hvdC0yMDIzLTAzLTE5LWF0LTE1LTIyLTI1LnBuZw.png&quot; alt=&quot;Actions&quot; title=&quot;Actions&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Actions&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Sekarang, website dokumentasi kita telah bisa diakses oleh publik di: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://%5BUSERNAME_GITHUB%5D.github.io/bmi-calculator&quot; class=&quot;css-17g8l3v&quot;&gt;https://[USERNAME_GITHUB].github.io/bmi-calculator&lt;/a&gt; 🎉&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;https://alfinsyahruddin.github.io/bmi-calculator&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/docc-tutorial/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvZHQxcXFQOE0vU2NyZWVuc2hvdC0yMDIzLTAzLTE5LWF0LTE1LTE1LTEwLnBuZw.png&quot; alt=&quot;https://alfinsyahruddin.github.io/bmi-calculator&quot; title=&quot;https://alfinsyahruddin.github.io/bmi-calculator&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;https://alfinsyahruddin.github.io/bmi-calculator&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kamu tertarik dan ingin mempelajari lebih dalam mengenai DocC, seperti cara Localization, membuat Interactive Tutorial, deploy ke Apache Web Server, dll. Kamu bisa membaca dokumentasinya di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://developer.apple.com/documentation/docc&quot; class=&quot;css-17g8l3v&quot;&gt;https://developer.apple.com/documentation/docc&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[The Composable Architecture]]></title><description><![CDATA[Redux ❤️ Swift = TCA]]></description><link>https://blog.alfin.dev/articlethe-composable-architecture</link><guid isPermaLink="false">https://blog.alfin.dev/articlethe-composable-architecture</guid><pubDate>Fri, 17 Mar 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-tca-&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-tca-&quot;&gt;Apa itu TCA ?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;The Composable Architecture (TCA) adalah sebuah library &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Swift&lt;/span&gt; untuk membangun aplikasi dengan cara yang konsisten dan mudah dipahami, dengan mempertimbangkan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Composition&lt;/span&gt;, &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Testing&lt;/span&gt;, dan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Ergonomics&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;TCA bisa digunakan di &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;SwiftUI&lt;/span&gt; maupun &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UIKit&lt;/span&gt;, dan semua platform Apple seperti iOS, macOS, tvOS, dan watchOS.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kamu pernah menggunakan library &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://redux.js.org/&quot; class=&quot;css-17g8l3v&quot;&gt;Redux&lt;/a&gt; sebelumnya, secara konsep, TCA ini sebenarnya hampir sama dengan Redux!&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#mengapa-menggunakan-tca-&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;mengapa-menggunakan-tca-&quot;&gt;Mengapa menggunakan TCA ?&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;TCA menyelesaikan beberapa masalah yang mungkin sering kita hadapi dalam membangun aplikasi iOS, seperti:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#state-management&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;state-management&quot;&gt;State Management&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;State Management adalah tentang bagaimana kita memanajemen state pada aplikasi kita, dan membagikannya ke banyak halaman pada aplikasi kita, jadi jika kita mengubah state pada suatu halaman, maka halaman lain yang menggunakan state tersebut juga akan berubah.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#composition&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;composition&quot;&gt;Composition&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Composition adalah tentang bagaimana kita memecah fitur yang besar menjadi komponen-komponen kecil, modul-modul yang terisolasi, dan mudah untuk digabungkan kembali menjadi satu fitur yang utuh.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#side-effects&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;side-effects&quot;&gt;Side Effects&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Side Effects adalah tentang bagaimana aplikasi kita berinteraksi dengan dunia luar seperti database atau API. nah dengan TCA, kita bisa memanajemen Side Effect agar mudah untuk ditest dan dipahami.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#testing&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;testing&quot;&gt;Testing&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;TCA memungkinkan kita untuk membuat Unit, Integration, bahkan End-to-End (E2E) tests untuk memastikan bahwa aplikasi kita berjalan dengan baik.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#ergonomics&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;ergonomics&quot;&gt;Ergonomics&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ergonomics adalah tentang bagaimana kita bisa menyelesaikan semua hal di atas dengan cara semudah mungkin.&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#6-komponen-tca&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;6-komponen-tca&quot;&gt;6 komponen TCA&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Diagram TCA&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/the-composable-architecture/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvMjVOV2Y5ZkcvdGNhLnBuZw.png&quot; alt=&quot;Diagram TCA&quot; title=&quot;Diagram TCA&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Diagram TCA&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah 5 komponen yang ada dalam library the Composable Architecture:&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#state&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;state&quot;&gt;State&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;State&lt;/span&gt; adalah sebuah &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://docs.swift.org/swift-book/documentation/the-swift-programming-language/types/&quot; class=&quot;css-17g8l3v&quot;&gt;type&lt;/a&gt; yang mendeskripsikan data dari aplikasi kita seperti data count, username, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh untuk membuat &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;State&lt;/span&gt; pada TCA:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;State&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;State&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Int&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#action&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;action&quot;&gt;Action&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Action&lt;/span&gt; adalah sebuah &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://docs.swift.org/swift-book/documentation/the-swift-programming-language/types/&quot; class=&quot;css-17g8l3v&quot;&gt;type&lt;/a&gt; yang merepresentasikan semua aksi atau event yang terjadi pada aplikasi kita seperti jika button diklik, fetching data ke API, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh untuk membuat &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Action&lt;/span&gt; pada TCA:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Action&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Equatable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; incrementButtonTapped&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; decrementButtonTapped&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#reducer&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;reducer&quot;&gt;Reducer&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Reducer&lt;/span&gt; adalah sebuah &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://docs.swift.org/swift-book/documentation/the-swift-programming-language/functions/&quot; class=&quot;css-17g8l3v&quot;&gt;function&lt;/a&gt; yang bertugas untuk mengubah &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;State&lt;/span&gt; kita berdasarkan tipe &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Action&lt;/span&gt; yang dikirim. &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Reducer&lt;/span&gt; juga bertugas untuk me-return &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Effect&lt;/span&gt; jika diperlukan.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh untuk membuat &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Reducer&lt;/span&gt; pada TCA:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Reducer&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ReducerProtocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;State&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Equatable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; count &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Equatable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; incrementButtonTapped&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; decrementButtonTapped&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;into state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;inout&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;State&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;EffectTask&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Action&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; action &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;decrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;incrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;  &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;.none&lt;/span&gt; artinya tidak ada &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Effect&lt;/span&gt; yang ingin dijalankan pada action tersebut.&lt;/p&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#effect&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;effect&quot;&gt;Effect&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Effect&lt;/span&gt; adalah cara kita berinteraksi dengan dunia luar seperti database dan API. Di dalam &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Effect&lt;/span&gt;, kita juga bisa mengirimkan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Action&lt;/span&gt; jika diperlukan.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Ada 2 cara untuk membuat &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Effect&lt;/span&gt;:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Menggunakan &lt;strong&gt;Swift Structured Concurreny&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;ul style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://pointfreeco.github.io/swift-composable-architecture/main/documentation/composablearchitecture/effectpublisher/task(priority:operation:catch:file:fileid:line:)&quot; class=&quot;css-17g8l3v&quot;&gt;task(priority:operation:catch:file:fileID:line:)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://pointfreeco.github.io/swift-composable-architecture/main/documentation/composablearchitecture/effectpublisher/run(priority:operation:catch:file:fileid:line:)&quot; class=&quot;css-17g8l3v&quot;&gt;run(priority:operation:catch:file:fileID:line:)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://pointfreeco.github.io/swift-composable-architecture/main/documentation/composablearchitecture/effectpublisher/fireandforget(priority:_:)&quot; class=&quot;css-17g8l3v&quot;&gt;fireAndForget(priority:_:)&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ol start=&quot;2&quot; style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Menggunakan framework &lt;strong&gt;Combine&lt;/strong&gt;
Jika kita menggunakan Combine, maka kita bisa membuat &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Effect&lt;/span&gt; dengan menggunakan operator-operator yang ada di Combine, kemudian kita lakukan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;type erasure&lt;/span&gt; menjadi &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;EffectPublisher&lt;/span&gt; menggunakan method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;eraseToEffect&lt;/span&gt; atau &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;catchToEffect&lt;/span&gt;.&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css 14kxapm&quot;&gt;.css-14kxapm{display:block;color:#f2aa00;background-color:rgba(242, 170, 0, 0.05);line-height:1;font-size:16px;padding:16px;margin-top:32px;margin-bottom:32px;border:none;border-left:4px solid;border-color:#f2aa00;}&lt;/style&gt;&lt;div class=&quot;blockquote MuiBox-root css-14kxapm&quot;&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Baca juga: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://blog.alfin.dev/article/3-pilar-framework-combine&quot; class=&quot;css-17g8l3v&quot;&gt;3 Pilar Framework Combine&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh untuk membuat &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Effect&lt;/span&gt; pada TCA:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Effect&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;into state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;inout&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;State&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;EffectTask&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Action&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; action &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;decrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;fireAndForget &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;State count decremented by -1&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#dependency&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;dependency&quot;&gt;Dependency&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Dependency&lt;/span&gt; adalah segala hal yang kita gunakan dari dunia luar yang tidak bisa kita kontrol. Contohnya seperti API Request, menyimpan data ke Database, dll.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;TCA memungkinkan kita untuk mengontrol &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Dependency&lt;/span&gt; pada aplikasi kita, jadi kita bisa melakukan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;mocking&lt;/span&gt; ketika menulis &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;Unit Tests&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk membuat &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Dependency&lt;/span&gt;, kita tinggal melakukan extension pada &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;DependencyValues&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh untuk membuat &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Dependency&lt;/span&gt; pada TCA:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Dependency&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserDefaultsKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;DependencyKey&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; liveValue &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;standard&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; testValue &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; userDefaults &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        userDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;removePersistentDomain&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;forName&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;test&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; userDefaults&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;extension&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;DependencyValues&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; userDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserDefaults&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserDefaultsKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserDefaultsKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; newValue &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;liveValue&lt;/span&gt; adalah value yang akan digunakan pada saat aplikasi kita dijalankan, sedangkan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;mockValue&lt;/span&gt; adalah value yang akan digunakan pada saat testing. selain itu, ada juga &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;previewValue&lt;/span&gt; yang akan digunakan pada SwiftUI Preview.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Dependency&lt;/span&gt; yang telah kita buat di atas, caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;CounterReducer&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ReducerProtocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@Dependency&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;userDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; userDefaults&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;into state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;inout&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;State&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;EffectTask&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Action&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; action &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;      &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;decrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;fireAndForget &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;State count decremented by -1&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line highlight-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;userDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; forKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;count&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;...&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#store&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1kwv69e&quot;&gt;.css-1kwv69e{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:3.75rem;line-height:1.2;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.3em;}&lt;/style&gt;&lt;h2 class=&quot;MuiTypography-root MuiTypography-h2 css-1kwv69e&quot; id=&quot;store&quot;&gt;Store&lt;/h2&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Store adalah hasil kombinasi dari semua komponen di atas, Jika kita akan mengirim &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Action&lt;/span&gt;, kita kirim ke &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Store&lt;/span&gt;, atau jika kita ingin meng-observe perubahan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;State&lt;/span&gt;, juga kita observe ke &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Store&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah contoh untuk membuat &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Store&lt;/span&gt; pada TCA:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Store&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; store &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Store&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    initialState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;State&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    reducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#instalasi-tca&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;instalasi-tca&quot;&gt;Instalasi TCA&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita bisa menginstal the Composable Architecture dengan cara:&lt;/p&gt;&lt;ol style=&quot;padding-left:20px&quot;&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Klik menu &amp;quot;File&amp;quot;, kemudian pilih &amp;quot;Add Packages&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Lalu masukkan &amp;quot;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/pointfreeco/swift-composable-architecture%22&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/pointfreeco/swift-composable-architecture&amp;quot;&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;&lt;li&gt;&lt;style data-emotion=&quot;css a3d36m&quot;&gt;.css-a3d36m{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-left:0px;margin-top:8px;margin-bottom:8px;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-a3d36m&quot;&gt;Pilih versi &amp;quot;0.52.0&amp;quot;&lt;/p&gt;&lt;/li&gt;&lt;/ol&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#menggunakan-tca-di-swiftui&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;menggunakan-tca-di-swiftui&quot;&gt;Menggunakan TCA di SwiftUI&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Misalnya kita punya &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CounterReducer&lt;/span&gt; seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;CounterReducer.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Foundation&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ComposableArchitecture&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ReducerProtocol&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@Dependency&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;userDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; userDefaults&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;State&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Equatable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; count &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;0&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Equatable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; initializeState&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; incrementButtonTapped&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; decrementButtonTapped&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;reduce&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;into state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;inout&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;State&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;EffectTask&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Action&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;switch&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; action &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;initializeState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;userDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;integer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;forKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;count&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;none&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;decrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;fireAndForget &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;State count decremented by -1&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;userDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; forKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;count&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;case&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;incrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;+=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;fireAndForget &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;State count incremented by 1&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;userDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setValue&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;state&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; forKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;count&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;37&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;41&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token comment&quot; style=&quot;color:rgb(99, 119, 119);font-family:OperatorMono-MediumItalic, OperatorMono-Medium, monospace&quot;&gt;// MARK: Dependencies&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;enum&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserDefaultsKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;DependencyKey&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;43&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; liveValue &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;standard&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;44&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;45&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;static&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; testValue &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;46&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; userDefaults &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;47&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        userDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;removePersistentDomain&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;forName&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;test&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;48&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; userDefaults&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;49&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;51&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;52&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;extension&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;DependencyValues&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;53&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; userDefaults&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserDefaults&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;54&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;get&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserDefaultsKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;55&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;set&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UserDefaultsKey&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; newValue &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;56&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;57&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dan berikut adalah contoh code untuk menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;CounterReducer&lt;/span&gt; di &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;SwiftUI&lt;/span&gt;:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;ContentView.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;SwiftUI&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ComposableArchitecture&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;struct&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ContentView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; store &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Store&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        initialState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;State&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        reducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; body&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;some&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;View&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;WithViewStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;store&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; viewStore &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;HStack&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; viewStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;decrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;viewStore&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;+&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; viewStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;incrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;onAppear &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;                viewStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;initializeState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita tidak bisa menggunakan variabel &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;store&lt;/span&gt; secara langsung, namun perlu membungkus view kita menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;WithViewStore&lt;/span&gt; agar jika state &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;count&lt;/span&gt; berubah, view kita juga akan berubah secara otomatis.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#menggunakan-tca-di-uikit&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;menggunakan-tca-di-uikit&quot;&gt;Menggunakan TCA di UIKit&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk menggunakan TCA di &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UIKit&lt;/span&gt;, caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;ViewController.swift&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIKit&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Combine&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ComposableArchitecture&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ViewController&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIViewController&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; viewStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ViewStoreOf&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ViewStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Store&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            initialState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;State&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            reducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;var&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; cancellables&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Set&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;lt;&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;AnyCancellable&lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; countLabel &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UILabel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; decrementButton&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIButton&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; button &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIButton&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setTitle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;-&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;normal&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; button&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; incrementButton&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIButton&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; button &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIButton&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        button&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setTitle&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;+&amp;quot;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;normal&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; button&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; stackView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIStackView&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; stackView &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;UIStackView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        stackView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;axis &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;horizontal&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;28&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;return&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; stackView&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;29&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;30&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;31&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;32&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;loadView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;33&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;loadView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;34&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;35&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupUI&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;36&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupConstraints&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;37&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupHandlers&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;38&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;39&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;40&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;override&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;41&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;super&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;viewDidLoad&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;42&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;43&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        viewStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;initializeState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;44&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;45&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;46&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupUI&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;47&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        stackView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addArrangedSubview&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;decrementButton&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;48&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        stackView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addArrangedSubview&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;countLabel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;49&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        stackView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addArrangedSubview&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;incrementButton&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;50&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;view&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addSubview&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;stackView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;51&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;52&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;53&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupConstraints&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;54&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        stackView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;translatesAutoresizingMaskIntoConstraints &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token boolean&quot; style=&quot;color:rgb(255, 88, 116)&quot;&gt;false&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;55&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;NSLayoutConstraint&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;activate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;[&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;56&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            stackView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;centerXAnchor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;constraint&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;equalTo&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;view&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;centerXAnchor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;57&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            stackView&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;centerYAnchor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;constraint&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;equalTo&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;view&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;centerYAnchor&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;58&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;]&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;59&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;60&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;61&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;setupHandlers&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;62&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;decrementButton&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addTarget&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token other-directive property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;#selector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;decrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;touchUpInside&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;63&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;incrementButton&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;addTarget&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; action&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token other-directive property&quot; style=&quot;color:rgb(128, 203, 196)&quot;&gt;#selector&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;incrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;for&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;touchUpInside&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;64&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;65&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;viewStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;publisher&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;66&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;map &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation short-argument&quot;&gt;$0&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;67&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; on&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; countLabel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;68&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;store&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cancellables&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;69&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;70&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;71&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@objc&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;decrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;72&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;viewStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;decrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;73&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;74&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;75&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@objc&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;private&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;incrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;76&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;viewStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;incrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;77&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;78&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kita memerlukan framework &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;Combine&lt;/span&gt; agar jika terjadi perubahan pada state &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;count&lt;/span&gt;, maka label &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;countLabel&lt;/span&gt; juga akan ikut berubah.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;viewStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;publisher&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;map &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\(&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation short-argument&quot;&gt;$0&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation&quot;&gt;count&lt;/span&gt;&lt;span class=&quot;token string-literal interpolation-punctuation punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token string-literal string&quot; style=&quot;color:rgb(173, 219, 103);font-family:OperatorMono-Medium, monospace&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;assign&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;to&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;\&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; on&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; countLabel&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;store&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;in&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;self&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;cancellables&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#testing-1&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;testing-1&quot;&gt;Testing&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Untuk melakukan Testing di TCA itu sangat mudah, caranya seperti ini:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;style data-emotion=&quot;css 1rhr9lf&quot;&gt;.css-1rhr9lf{text-align:left;padding:1em;font-size:14px;color:rgba(255,255,255,0.5);border-radius:12px;border-bottom-right-radius:0;border-bottom-left-radius:0;border:1px solid;border-color:rgba(0,0,0,0.2);background-color:rgb(1, 22, 38);border-bottom-color:rgba(255,255,255,0.2);}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1rhr9lf&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;span style=&quot;margin-bottom:0&quot;&gt;Testing&lt;/span&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 1mow88g&quot;&gt;.css-1mow88g{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:none;border-color:rgba(0,0,0,0.2);border-top-left-radius:0;border-top-right-radius:0;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-1mow88g&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 147i3wr&quot;&gt;.css-147i3wr{display:table-cell;width:100%;padding-right:0px;}&lt;/style&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTest&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;ComposableArchitecture&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@testable&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;import&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MyApp&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;final&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;MyAppTests&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;XCTestCase&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;6&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;test_decrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;7&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sut &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;TestStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;8&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;          initialState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;State&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;9&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;          reducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;10&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;11&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;12&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        sut&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;decrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;13&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token short-argument&quot;&gt;$0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;-&lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;14&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;15&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;16&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;17&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;test_incrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;18&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;let&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; sut &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;TestStore&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;19&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;          initialState&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;State&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;20&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;          reducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;CounterReducer&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;21&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;22&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot; style=&quot;display:inline-block&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;23&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        sut&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;send&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;incrementButtonTapped&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;24&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;            &lt;/span&gt;&lt;span class=&quot;token short-argument&quot;&gt;$0&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;count &lt;/span&gt;&lt;span class=&quot;token operator&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token number&quot; style=&quot;color:rgb(247, 140, 108)&quot;&gt;1&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;25&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;26&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;27&lt;/span&gt;&lt;span class=&quot;css-147i3wr&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://docs.swift.org/swift-book/documentation/the-swift-programming-language/closures/#Trailing-Closures&quot; class=&quot;css-17g8l3v&quot;&gt;Trailing closure&lt;/a&gt; pada method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;send&lt;/span&gt; berisi kondisi apa saja yang akan menyebabkan test kita berhasil.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dan apabila test kita gagal, pesan errornya juga sangat readable, ini salah satu yang saya suka dari TCA ❤️&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;style data-emotion=&quot;css 1ab75j8&quot;&gt;.css-1ab75j8{margin-top:32px;margin-bottom:32px;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1ab75j8&quot;&gt;&lt;style data-emotion=&quot;css 1yue6gq&quot;&gt;.css-1yue6gq{max-width:-webkit-fit-content;max-width:-moz-fit-content;max-width:fit-content;text-align:center;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-1yue6gq&quot;&gt;&lt;img src=&quot;/static/placeholder-6d7b23ad2775abd356c36dbcfbae26ed.webp&quot; title=&quot;Test Failed&quot; style=&quot;max-width:100%;display:block;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px;width:100%&quot;/&gt;&lt;img src=&quot;/assets/article-images/the-composable-architecture/aHR0cHM6Ly9pLnBvc3RpbWcuY2MvZlRKckZiS1ovU2NyZWVuc2hvdC0yMDIzLTAzLTE3LWF0LTE2LTMyLTE0LnBuZw.png&quot; alt=&quot;Test Failed&quot; title=&quot;Test Failed&quot; style=&quot;max-width:100%;display:none;border:1px solid;border-color:rgba(0,0,0,0.15);background:rgba(0,0,0,0.1);border-radius:10px&quot;/&gt;&lt;style data-emotion=&quot;css rsrp0i&quot;&gt;.css-rsrp0i{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:0.75rem;line-height:1.66;color:#7F7F7F;margin-top:0px;font-size:14px;text-align:center;display:block;}&lt;/style&gt;&lt;span class=&quot;MuiTypography-root MuiTypography-caption css-rsrp0i&quot;&gt;Test Failed&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css bxp04r&quot;&gt;.css-bxp04r{margin:0;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;border-width:0;border-style:solid;border-color:rgba(0,0,0,0.2);border-bottom-width:thin;margin-top:32px;margin-bottom:32px;}&lt;/style&gt;&lt;hr class=&quot;MuiDivider-root MuiDivider-fullWidth css-bxp04r&quot;/&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kamu tertarik dan ingin mempelajari lebih dalam mengenai TCA, seperti cara Sharing State, Scoping, melakukan Binding, integrasi dengan WebSocket, dll. Kamu bisa membaca dokumentasinya di sini: &lt;style data-emotion=&quot;css 17g8l3v&quot;&gt;.css-17g8l3v{color:#f2aa00;-webkit-text-decoration:none;text-decoration:none;border-bottom:1.5px dashed;border-color:rgba(242, 170, 0, 0.5);background:rgba(242, 170, 0, 0.1);word-wrap:break-word;}.css-17g8l3v:hover{border-color:rgba(242, 170, 0, 1);}.css-17g8l3v:visited{color:#f2aa00;}&lt;/style&gt;&lt;a target=&quot;_blank&quot; href=&quot;https://github.com/pointfreeco/swift-composable-architecture&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/pointfreeco/swift-composable-architecture&lt;/a&gt; atau melihat studi kasus penggunaan TCA di sini: &lt;a target=&quot;_blank&quot; href=&quot;https://github.com/pointfreeco/swift-composable-architecture/tree/main/Examples/CaseStudies&quot; class=&quot;css-17g8l3v&quot;&gt;https://github.com/pointfreeco/swift-composable-architecture/tree/main/Examples/CaseStudies&lt;/a&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Oke mungkin itu saja yang bisa saya bagikan kali ini, kalau kamu merasa artikel ini bermanfaat silakan Like &amp;amp; Share artikel ini ke teman-teman kamu atau jika kamu punya pertanyaan, tulis aja di kolom komentar, Thank you! 😁 🙏&lt;/p&gt;&lt;style data-emotion=&quot;css 2re251&quot;&gt;.css-2re251{display:block;color:#7F7F7F;background-color:#E5E5E5;text-align:center;padding:16px;}&lt;/style&gt;&lt;div class=&quot;MuiBox-root css-2re251&quot;&gt;All rights reserved © Alfin Syahruddin · 2019&lt;br/&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a href=&quot;/rss.xml&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; target=&quot;_blank&quot;&gt;&lt;style data-emotion=&quot;css 1mbi4lk&quot;&gt;.css-1mbi4lk{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;margin-top:8px;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1mbi4lk&quot;&gt;&lt;style data-emotion=&quot;css 1mt3f7g&quot;&gt;.css-1mt3f7g{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;margin-right:8px;width:18px;height:18px;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-1mt3f7g&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M21 1.5C21.3978 1.5 21.7794 1.65804 22.0607 1.93934C22.342 2.22064 22.5 2.60218 22.5 3V21C22.5 21.3978 22.342 21.7794 22.0607 22.0607C21.7794 22.342 21.3978 22.5 21 22.5H3C2.60218 22.5 2.22064 22.342 1.93934 22.0607C1.65804 21.7794 1.5 21.3978 1.5 21V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H21ZM3 0C2.20435 0 1.44129 0.316071 0.87868 0.87868C0.316071 1.44129 0 2.20435 0 3L0 21C0 21.7956 0.316071 22.5587 0.87868 23.1213C1.44129 23.6839 2.20435 24 3 24H21C21.7956 24 22.5587 23.6839 23.1213 23.1213C23.6839 22.5587 24 21.7956 24 21V3C24 2.20435 23.6839 1.44129 23.1213 0.87868C22.5587 0.316071 21.7956 0 21 0L3 0Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M8.25 18C8.25 18.5967 8.01295 19.169 7.59099 19.591C7.16903 20.0129 6.59674 20.25 6 20.25C5.40326 20.25 4.83097 20.0129 4.40901 19.591C3.98705 19.169 3.75 18.5967 3.75 18C3.75 17.4033 3.98705 16.831 4.40901 16.409C4.83097 15.9871 5.40326 15.75 6 15.75C6.59674 15.75 7.16903 15.9871 7.59099 16.409C8.01295 16.831 8.25 17.4033 8.25 18ZM3.75 5.25C3.75 4.85218 3.90804 4.47064 4.18934 4.18934C4.47064 3.90804 4.85218 3.75 5.25 3.75C13.5345 3.75 20.25 10.4655 20.25 18.75C20.25 19.1478 20.092 19.5294 19.8107 19.8107C19.5294 20.092 19.1478 20.25 18.75 20.25C18.3522 20.25 17.9706 20.092 17.6893 19.8107C17.408 19.5294 17.25 19.1478 17.25 18.75C17.25 15.5674 15.9857 12.5152 13.7353 10.2647C11.4848 8.01428 8.4326 6.75 5.25 6.75C4.85218 6.75 4.47064 6.59196 4.18934 6.31066C3.90804 6.02936 3.75 5.64782 3.75 5.25ZM3.75 11.25C3.75 10.8522 3.90804 10.4706 4.18934 10.1893C4.47064 9.90804 4.85218 9.75 5.25 9.75C7.63695 9.75 9.92613 10.6982 11.614 12.386C13.3018 14.0739 14.25 16.3631 14.25 18.75C14.25 19.1478 14.092 19.5294 13.8107 19.8107C13.5294 20.092 13.1478 20.25 12.75 20.25C12.3522 20.25 11.9706 20.092 11.6893 19.8107C11.408 19.5294 11.25 19.1478 11.25 18.75C11.25 17.1587 10.6179 15.6326 9.49264 14.5074C8.36742 13.3821 6.8413 12.75 5.25 12.75C4.85218 12.75 4.47064 12.592 4.18934 12.3107C3.90804 12.0294 3.75 11.6478 3.75 11.25Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;span&gt;RSS Feed&lt;/span&gt;&lt;/div&gt;&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;</content:encoded></item><item><title><![CDATA[Method Swizzling pada Swift]]></title><description><![CDATA[Memahami Method Swizzling pada Swift.]]></description><link>https://blog.alfin.dev/articlemethod-swizzling-pada-swift</link><guid isPermaLink="false">https://blog.alfin.dev/articlemethod-swizzling-pada-swift</guid><pubDate>Sun, 12 Feb 2023 00:00:00 GMT</pubDate><content:encoded>&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;div class=&quot;light&quot;&gt;&lt;style data-emotion=&quot;css-global 12yz1wd&quot;&gt;html{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;box-sizing:border-box;-webkit-text-size-adjust:100%;}*,*::before,*::after{box-sizing:inherit;}strong,b{font-weight:700;}body{margin:0;color:#24283D;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;background-color:#FFF;}@media print{body{background-color:#fff;}}body::backdrop{background-color:#FFF;}@font-face{font-family:&apos;Muli&apos;;src:local(&apos;Muli&apos;),local(&apos;Muli-Regular&apos;),url(/static/Muli-Regular-ef02955f64b024099d7be42e76db7ebc.woff2) format(&apos;woff2&apos;);}@font-face{font-family:&apos;OperatorMono-Medium&apos;;src:local(&apos;OperatorMono-Medium&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-Medium-a5100de571727eaa5793c6b3db6e9940.woff2) format(&apos;woff2&apos;);font-weight:500;}@font-face{font-family:&apos;OperatorMono-MediumItalic&apos;;src:local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-MediumItalic&apos;),local(&apos;OperatorMono-Medium&apos;),local(&apos;Operator Mono&apos;),url(/static/OperatorMono-MediumItalic-b12cbf7446491f4942a10446c00ef6e6.woff2) format(&apos;woff2&apos;);font-weight:500;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1u7x87y&quot;&gt;.css-1u7x87y{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-1u7x87y{position:absolute;}}&lt;/style&gt;&lt;style data-emotion=&quot;css sr046z&quot;&gt;.css-sr046z{background-color:#FFF;color:#24283D;-webkit-transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:box-shadow 300ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;box-shadow:0px 2px 4px -1px rgba(0,0,0,0.2),0px 4px 5px 0px rgba(0,0,0,0.14),0px 1px 10px 0px rgba(0,0,0,0.12);display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:column;-ms-flex-direction:column;flex-direction:column;width:100%;box-sizing:border-box;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;position:fixed;z-index:1100;top:0;left:auto;right:0;background-color:#f5f5f5;color:rgba(0, 0, 0, 0.87);-webkit-transition:padding 0.3s ease-out;transition:padding 0.3s ease-out;background:none;border:none;border-bottom:none;border-color:transparent;-webkit-backdrop-filter:none;backdrop-filter:none;webkit-backdrop-filter:none;box-shadow:none;padding-top:32px;padding-left:48px;padding-right:48px;z-index:1200;}@media print{.css-sr046z{position:absolute;}}&lt;/style&gt;&lt;header class=&quot;MuiPaper-root MuiPaper-elevation MuiPaper-elevation4 MuiAppBar-root MuiAppBar-colorDefault MuiAppBar-positionFixed mui-fixed css-sr046z&quot; id=&quot;app-bar&quot;&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;style data-emotion=&quot;css 1b1jvye&quot;&gt;.css-1b1jvye{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-box-pack:justify;-webkit-justify-content:space-between;justify-content:space-between;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-1b1jvye&quot;&gt;&lt;style data-emotion=&quot;css 1qvpvj5&quot;&gt;.css-1qvpvj5{-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-1qvpvj5:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;style data-emotion=&quot;css oo8mg1&quot;&gt;.css-oo8mg1{margin:0;color:#f2aa00;-webkit-text-decoration:underline;text-decoration:underline;text-decoration-color:rgba(242, 170, 0, 0.4);}.css-oo8mg1:hover{text-decoration-color:inherit;}&lt;/style&gt;&lt;a aria-current=&quot;page&quot; class=&quot;MuiTypography-root MuiTypography-inherit MuiLink-root MuiLink-underlineAlways css-oo8mg1&quot; href=&quot;/&quot;&gt;&lt;img placeholder=&quot;blurred&quot; src=&quot;/assets/images/logo.png&quot; alt=&quot;logo&quot; height=&quot;50&quot; width=&quot;124&quot;/&gt;&lt;/a&gt;&lt;style data-emotion=&quot;css 1i77gge&quot;&gt;.css-1i77gge{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:end;-ms-flex-pack:end;-webkit-justify-content:flex-end;justify-content:flex-end;width:124px;}&lt;/style&gt;&lt;div class=&quot;css-1i77gge&quot;&gt;&lt;style data-emotion=&quot;css 1smr5sr&quot;&gt;.css-1smr5sr .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1smr5sr .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;style data-emotion=&quot;css 1sn1dqg&quot;&gt;.css-1sn1dqg{text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1sn1dqg:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1sn1dqg:hover{background-color:transparent;}}.css-1sn1dqg.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;style data-emotion=&quot;css 1e21d27&quot;&gt;.css-1e21d27{display:-webkit-inline-box;display:-webkit-inline-flex;display:-ms-inline-flexbox;display:inline-flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;-webkit-box-pack:center;-ms-flex-pack:center;-webkit-justify-content:center;justify-content:center;position:relative;box-sizing:border-box;-webkit-tap-highlight-color:transparent;background-color:transparent;outline:0;border:0;margin:0;border-radius:0;padding:0;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;vertical-align:middle;-moz-appearance:none;-webkit-appearance:none;-webkit-text-decoration:none;text-decoration:none;color:inherit;text-align:center;-webkit-flex:0 0 auto;-ms-flex:0 0 auto;flex:0 0 auto;font-size:1.5rem;padding:8px;border-radius:50%;overflow:visible;color:rgba(0, 0, 0, 0.54);-webkit-transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:background-color 150ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;border:0.25px solid;border-color:transparent;padding:10px;color:#7F7F7F;}.css-1e21d27::-moz-focus-inner{border-style:none;}.css-1e21d27.Mui-disabled{pointer-events:none;cursor:default;}@media print{.css-1e21d27{-webkit-print-color-adjust:exact;color-adjust:exact;}}.css-1e21d27:hover{background-color:rgba(0, 0, 0, 0.04);}@media (hover: none){.css-1e21d27:hover{background-color:transparent;}}.css-1e21d27.Mui-disabled{background-color:transparent;color:rgba(185,185,185,1);}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Search&quot;&gt;&lt;style data-emotion=&quot;css vubbuv&quot;&gt;.css-vubbuv{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M10.264 20.527c2.277 0 4.488-.763 6.282-2.166l5.64 5.64L24 22.187l-5.64-5.64a10.203 10.203 0 002.167-6.284C20.527 4.605 15.923 0 10.263 0 4.605 0 0 4.604 0 10.264c0 5.659 4.604 10.263 10.264 10.263zm0-17.961c4.245 0 7.697 3.452 7.697 7.698 0 4.245-3.452 7.697-7.697 7.697-4.246 0-7.698-3.452-7.698-7.697 0-4.246 3.452-7.698 7.698-7.698z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M12.075 8.45c.486.487.754 1.131.754 1.814h2.566a5.102 5.102 0 00-1.506-3.629c-1.942-1.94-5.31-1.94-7.251 0l1.811 1.817c.976-.972 2.656-.97 3.626-.003z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/button&gt;&lt;style data-emotion=&quot;css 1477zll&quot;&gt;.css-1477zll{z-index:1500;pointer-events:none;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow{top:0;margin-top:-0.71em;}.css-1477zll[data-popper-placement*=&quot;bottom&quot;] .MuiTooltip-arrow::before{transform-origin:0 100%;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow{bottom:0;margin-bottom:-0.71em;}.css-1477zll[data-popper-placement*=&quot;top&quot;] .MuiTooltip-arrow::before{transform-origin:100% 0;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow{left:0;margin-left:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;right&quot;] .MuiTooltip-arrow::before{transform-origin:100% 100%;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow{right:0;margin-right:-0.71em;height:1em;width:0.71em;}.css-1477zll[data-popper-placement*=&quot;left&quot;] .MuiTooltip-arrow::before{transform-origin:0 0;}.css-1477zll .MuiTooltip-arrow::before{border:0.25px solid;border-color:transparent;background-color:#363B56;}.css-1477zll .MuiTooltip-tooltip{border:0.25px solid;border-color:transparent;background-color:#363B56;color:#FFF;border-radius:8px;}&lt;/style&gt;&lt;button class=&quot;MuiButtonBase-root MuiIconButton-root MuiIconButton-sizeMedium css-1e21d27&quot; tabindex=&quot;0&quot; type=&quot;button&quot; aria-label=&quot;Switch to Dark Theme&quot;&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-fontSizeMedium css-vubbuv&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M12 14.4a2.4 2.4 0 100-4.801 2.4 2.4 0 000 4.801zm0 2.4a4.8 4.8 0 110-9.6 4.8 4.8 0 010 9.6zm7.2-6h3.6a1.2 1.2 0 110 2.4h-3.6a1.2 1.2 0 110-2.4zM12 18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0v-3.6A1.2 1.2 0 0112 18zm0-18a1.2 1.2 0 011.2 1.2v3.6a1.2 1.2 0 11-2.4 0V1.2A1.2 1.2 0 0112 0zM1.2 10.8h3.6a1.2 1.2 0 110 2.4H1.2a1.2 1.2 0 110-2.4zm16.74 5.443l2.545 2.544a1.2 1.2 0 01-1.697 1.698l-2.545-2.545a1.2 1.2 0 011.697-1.697zm-10.183 0a1.2 1.2 0 010 1.697l-2.544 2.545a1.2 1.2 0 01-1.698-1.697l2.545-2.545a1.2 1.2 0 011.697 0zM20.485 3.515a1.2 1.2 0 010 1.697L17.94 7.757a1.2 1.2 0 01-1.697-1.697l2.544-2.545a1.2 1.2 0 011.698 0zm-15.273 0L7.757 6.06A1.2 1.2 0 116.06 7.757L3.516 5.213a1.2 1.2 0 111.697-1.698h-.001z&quot;&gt;&lt;/path&gt; &lt;/svg&gt;&lt;/button&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/header&gt;&lt;style data-emotion=&quot;css 191lty2&quot;&gt;.css-191lty2{position:relative;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-align-items:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;padding-left:16px;padding-right:16px;min-height:56px;}@media (min-width:600px){.css-191lty2{padding-left:24px;padding-right:24px;}}@media (min-width:0px) and (orientation: landscape){.css-191lty2{min-height:48px;}}@media (min-width:600px){.css-191lty2{min-height:64px;}}&lt;/style&gt;&lt;div class=&quot;MuiToolbar-root MuiToolbar-gutters MuiToolbar-regular css-191lty2&quot;&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#apa-itu-method-swizzling&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;apa-itu-method-swizzling&quot;&gt;Apa itu Method Swizzling&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;Method Swizzling&lt;/strong&gt; adalah fitur pada bahasa pemrograman Objective-C untuk mengganti implementasi dari selector yang sudah ada, pada saat runtime.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Atau sederhananya, dengan fitur tersebut kita bisa mengubah behavior dari suatu method ketika method tersebut dipanggil.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Misalnya kita punya method A, nah jika method A dipanggil, kita bisa mengubah agar code dari method B yang akan dijalankan, bukan code dari method A.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dan karena bahasa pemrograman Objective-C dengan Swift itu &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;interopable&lt;/span&gt; (bisa digunakan secara bersamaan), maka fitur tersebut juga bisa digunakan pada bahasa pemrograman Swift.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#contoh-kasus&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;contoh-kasus&quot;&gt;Contoh Kasus&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Berikut adalah beberapa contoh kasus mengapa kita memerlukan Method Swizzling:&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;1. Mengurangi kode yang redundan&lt;/strong&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Misalnya kita ingin agar semua &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UIViewController&lt;/span&gt; mempunyai background dengan warna kuning, nah dengan Method Swizzling, kita tidak perlu lagi untuk mengatur warna background di setiap &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UIViewController&lt;/span&gt;.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;&lt;strong&gt;2. Memodifikasi implementasi pada method secara global&lt;/strong&gt;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Katakanlah kita ingin agar semua data yang disimpan di &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UserDefaults&lt;/span&gt;, key nya harus memiliki prefix &amp;quot;XYZ_&amp;quot;&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Cara yang biasa kita lakukan, mungkin adalah bikin aja satu &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;function&lt;/span&gt; untuk menyimpan data ke &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UserDefaults&lt;/span&gt; yang akan menambahkan prefix &amp;quot;XYZ_&amp;quot; pada key nya, dan tiap kali kita ingin menyimpan data, kita tinggal gunakan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;function&lt;/span&gt; tersebut.&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Namun cara tersebut punya masalah ketika ada Library yang juga menggunakan &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;UserDefaults&lt;/span&gt;, Library tersebut tidak mungkin kan menggunakan &lt;span style=&quot;word-spacing:-5px;font-family:&amp;quot;OperatorMono-MediumItalic&amp;quot;, &amp;quot;Muli&amp;quot;, &amp;quot;Helvetica&amp;quot;, &amp;quot;Arial&amp;quot;, &amp;quot;sans-serif&amp;quot;&quot;&gt;function&lt;/span&gt; yang kita buat di atas?&lt;/p&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Dalam kasus ini, kita bisa memecahkan masalah tersebut menggunakan Method Swizzling.&lt;/p&gt;&lt;style data-emotion=&quot;css cpkics&quot;&gt;.css-cpkics{box-sizing:border-box;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-flex-wrap:wrap;-webkit-flex-wrap:wrap;-ms-flex-wrap:wrap;flex-wrap:wrap;width:100%;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-align-items:flex-start;-webkit-box-align:flex-start;-ms-flex-align:flex-start;align-items:flex-start;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-container MuiGrid-spacing-xs-undefined css-cpkics&quot; style=&quot;transform:translateX(-28px)&quot;&gt;&lt;style data-emotion=&quot;css 1wxaqej&quot;&gt;.css-1wxaqej{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item css-1wxaqej&quot;&gt;&lt;a href=&quot;#penggunaan-method-swizzling&quot;&gt;&lt;style data-emotion=&quot;css 1ge0ctw&quot;&gt;.css-1ge0ctw{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:1em;height:1em;display:inline-block;fill:currentColor;-webkit-flex-shrink:0;-ms-flex-negative:0;flex-shrink:0;-webkit-transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;transition:fill 200ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;font-size:1.5rem;color:#f2aa00;font-size:20px;margin-right:8px;margin-top:18px;visibility:hidden;cursor:pointer;}&lt;/style&gt;&lt;svg class=&quot;MuiSvgIcon-root MuiSvgIcon-colorPrimary MuiSvgIcon-fontSizeMedium css-1ge0ctw&quot; focusable=&quot;false&quot; viewBox=&quot;0 0 24 24&quot; aria-hidden=&quot;true&quot;&gt;&lt;path d=&quot;M1.89864 22.1013C2.50108 22.7046 3.21679 23.1829 4.00464 23.5087C4.7925 23.8346 5.63698 24.0015 6.48956 24C7.34233 24.0015 8.18699 23.8345 8.97506 23.5087C9.76312 23.1828 10.4791 22.7046 11.0818 22.1013L14.7545 18.4272L12.9181 16.5909L9.24541 20.2649C8.51355 20.9935 7.5229 21.4025 6.49021 21.4025C5.45752 21.4025 4.46687 20.9935 3.73501 20.2649C3.00579 19.5334 2.59632 18.5426 2.59632 17.5097C2.59632 16.4768 3.00579 15.486 3.73501 14.7545L7.40904 11.0818L5.57268 9.24541L1.89864 12.9181C0.682805 14.1369 0 15.7882 0 17.5097C0 19.2313 0.682805 20.8825 1.89864 22.1013V22.1013ZM22.1013 11.0818C23.3165 9.86267 23.9989 8.21154 23.9989 6.49021C23.9989 4.76889 23.3165 3.11776 22.1013 1.89864C20.8825 0.682805 19.2313 0 17.5097 0C15.7882 0 14.1369 0.682805 12.9181 1.89864L9.24541 5.57268L11.0818 7.40905L14.7545 3.73501C15.4864 3.00643 16.477 2.59738 17.5097 2.59738C18.5424 2.59738 19.5331 3.00643 20.2649 3.73501C20.9941 4.46653 21.4036 5.45731 21.4036 6.49021C21.4036 7.52311 20.9941 8.51389 20.2649 9.24541L16.5909 12.9181L18.4272 14.7545L22.1013 11.0818Z&quot;&gt;&lt;/path&gt;&lt;path d=&quot;M7.40778 18.4286L5.57011 16.5922L16.5922 5.57141L18.4286 7.40908L7.40778 18.4286Z&quot;&gt;&lt;/path&gt;&lt;/svg&gt;&lt;/a&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 3rlh95&quot;&gt;.css-3rlh95{box-sizing:border-box;margin:0;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;-webkit-flex-basis:0;-ms-flex-preferred-size:0;flex-basis:0;-webkit-box-flex:1;-webkit-flex-grow:1;-ms-flex-positive:1;flex-grow:1;max-width:100%;}&lt;/style&gt;&lt;div class=&quot;MuiGrid-root MuiGrid-item MuiGrid-grid-xs-true css-3rlh95&quot;&gt;&lt;style data-emotion=&quot;css 1jv5ln2&quot;&gt;.css-1jv5ln2{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:300;font-size:6rem;line-height:1.167;color:#f2aa00;margin-top:-64px;padding-top:80px;line-height:1;font-weight:700;font-size:1.6em;}&lt;/style&gt;&lt;h1 class=&quot;MuiTypography-root MuiTypography-h1 css-1jv5ln2&quot; id=&quot;penggunaan-method-swizzling&quot;&gt;Penggunaan Method Swizzling&lt;/h1&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Perhatikan kode berikut:&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;Logger&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;2&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;3&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;        &lt;/span&gt;&lt;span class=&quot;token function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;print&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;4&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;    &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;5&lt;/span&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;}&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Jika kita ingin mengganti implementasi method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;log&lt;/span&gt; ketika method tersebut dipanggil, kita harus menambahkan attribute &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;@objc&lt;/span&gt; dan keyword &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;dynamic&lt;/span&gt; pada method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;log&lt;/span&gt;.&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@objc&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;dynamic&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;log&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;_&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; text&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token class-name&quot; style=&quot;color:rgb(255, 203, 139)&quot;&gt;String&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;{&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/pre&gt;&lt;style data-emotion=&quot;css 2rh1in&quot;&gt;.css-2rh1in{margin:0;font-family:Muli,&quot;Helvetica&quot;,&quot;Arial&quot;,sans-serif;font-weight:400;font-size:1rem;line-height:1.5;font-size:16px;line-height:1.75;margin-top:16px;margin-bottom:16px;text-align:left;}&lt;/style&gt;&lt;p class=&quot;MuiTypography-root MuiTypography-body1 css-2rh1in&quot;&gt;Kemudian kita buat implementasi baru dari method &lt;span style=&quot;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace;font-weight:bold;color:#f2aa00&quot;&gt;log&lt;/span&gt;, sebagai contoh kita akan menampilkan tanggal sebelum text log-nya :&lt;/p&gt;&lt;pre&gt;&lt;style data-emotion=&quot;css 1uvmdp1&quot;&gt;.css-1uvmdp1{margin:0;margin-top:32px;margin-bottom:32px;position:relative;}&lt;/style&gt;&lt;div class=&quot;css-1uvmdp1&quot;&gt;&lt;div style=&quot;position:relative&quot;&gt;&lt;div style=&quot;position:absolute;top:12px;right:6px;border:2px solid rgba(1, 22, 38, 1);background:rgba(1, 22, 38, 1);padding:0px 6px;border-radius:6px&quot;&gt;&lt;style data-emotion=&quot;css 1yjo05o&quot;&gt;.css-1yjo05o{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-flex-direction:row;-ms-flex-direction:row;flex-direction:row;}.css-1yjo05o&gt;:not(style)+:not(style){margin:0;margin-left:8px;}&lt;/style&gt;&lt;div class=&quot;css-1yjo05o&quot;&gt;&lt;button class=&quot;copy-button&quot;&gt;Copy&lt;/button&gt;&lt;img src=&quot;/assets/images/icons/swift.webp&quot; placeholder=&quot;blurred&quot; alt=&quot;icon&quot; width=&quot;26&quot; style=&quot;object-fit:contain&quot;/&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;style data-emotion=&quot;css vyl5ma&quot;&gt;.css-vyl5ma{border-radius:12px;margin-top:0;margin-bottom:0;border-top-right-radius:0;border-top-left-radius:0;text-align:left;padding:1em;padding-left:0.5em;overflow:scroll;font-size:14px;border-collapse:collapse;border:1px solid;border-top:1px solid;border-color:rgba(0,0,0,0.2);border-top-left-radius:12px;border-top-right-radius:12px;}&lt;/style&gt;&lt;pre class=&quot;prism-code language-swift css-vyl5ma&quot; style=&quot;color:#d6deeb;background-color:rgb(1, 22, 38);font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css ds3kc&quot;&gt;.css-ds3kc{display:table-row;}&lt;/style&gt;&lt;div class=&quot;token-line css-ds3kc&quot; style=&quot;color:#d6deeb;font-family:&amp;quot;OperatorMono-Medium&amp;quot;, &amp;quot;Courier New&amp;quot;, Courier, monospace&quot;&gt;&lt;style data-emotion=&quot;css 1gzbwym&quot;&gt;.css-1gzbwym{display:table-cell;min-width:30px;text-align:right;padding-left:0.5em;padding-right:1em;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0.5;}&lt;/style&gt;&lt;span class=&quot;css-1gzbwym&quot;&gt;1&lt;/span&gt;&lt;style data-emotion=&quot;css 1bsnh4c&quot;&gt;.css-1bsnh4c{display:table-cell;width:100%;padding-right:120px;}&lt;/style&gt;&lt;span class=&quot;css-1bsnh4c&quot;&gt;&lt;span class=&quot;token attribute atrule&quot;&gt;@objc&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;dynamic&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;func&lt;/span&gt;&lt;span class=&quot;token plain&quot;&gt; &lt;/span&gt;&lt;span class=&quot;token function-definition function&quot; style=&quot;color:rgb(130, 170, 255)&quot;&gt;logWithDate&lt;/span&gt;&lt;span class=&quot;token punctuation&quot; style=&quot;color:rgb(199, 146, 234)&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;token omit keyword&quot; style=&quot;color:rgb(127, 219, 202)&quot;&gt;