<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: ahmadasroni38</title>
    <description>The latest articles on Forem by ahmadasroni38 (@ahmadasroni38).</description>
    <link>https://forem.com/ahmadasroni38</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F649056%2Fe7493e8f-1f10-4d6e-b78e-20ea6e985f6c.jpg</url>
      <title>Forem: ahmadasroni38</title>
      <link>https://forem.com/ahmadasroni38</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/ahmadasroni38"/>
    <language>en</language>
    <item>
      <title>The Future of Mobile Computing</title>
      <dc:creator>ahmadasroni38</dc:creator>
      <pubDate>Mon, 09 Feb 2026 02:31:42 +0000</pubDate>
      <link>https://forem.com/ahmadasroni38/the-future-of-mobile-computing-435e</link>
      <guid>https://forem.com/ahmadasroni38/the-future-of-mobile-computing-435e</guid>
      <description>&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction: The Phone in Your Pocket Is Just the Beginning&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;The mobile phone you carry today is &lt;strong&gt;not the final form&lt;/strong&gt; of mobile computing. It is a &lt;strong&gt;transitional device&lt;/strong&gt; — powerful, but temporary.&lt;/p&gt;

&lt;p&gt;In the last 15 years, mobile computing evolved from &lt;strong&gt;making calls&lt;/strong&gt; to &lt;strong&gt;running our entire lives&lt;/strong&gt;. The next 10 years will bring changes even more dramatic.&lt;/p&gt;

&lt;p&gt;As students, you need to understand not just &lt;strong&gt;how things work today&lt;/strong&gt;, but &lt;strong&gt;where things are going&lt;/strong&gt; — because you will be the engineers, designers, and entrepreneurs building that future.&lt;/p&gt;

&lt;p&gt;In this session, we explore &lt;strong&gt;five major trends&lt;/strong&gt; shaping the future of mobile computing, supported by &lt;strong&gt;real examples&lt;/strong&gt;, &lt;strong&gt;visual comparisons&lt;/strong&gt;, and &lt;strong&gt;simple analogies&lt;/strong&gt; that make complex ideas easy to grasp.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The best way to predict the future is to &lt;strong&gt;invent it&lt;/strong&gt;."&lt;br&gt;
— Alan Kay, Computer Scientist&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;The Mind-Blowing Starting Point&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Before we look forward, let's appreciate how far we've come:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;&lt;/th&gt;
&lt;th&gt;Apollo 11 Computer (1969)&lt;/th&gt;
&lt;th&gt;Your Smartphone (2025)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;RAM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;4 KB&lt;/td&gt;
&lt;td&gt;8–16 GB&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Speed&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;0.043 MHz&lt;/td&gt;
&lt;td&gt;3+ GHz&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Storage&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;72 KB&lt;/td&gt;
&lt;td&gt;256 GB+&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Weight&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;32 kg&lt;/td&gt;
&lt;td&gt;200 grams&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cost&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;$150,000&lt;/td&gt;
&lt;td&gt;$200–1,000&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;Your phone is &lt;strong&gt;100,000 times more powerful&lt;/strong&gt; than the computer that landed humans on the Moon.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That was 55 years ago. What will mobile look like in the &lt;strong&gt;next&lt;/strong&gt; 10 years?&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;1. 5G and Beyond — Super-Fast Connectivity&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe363uikstedlnbxux2j3.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe363uikstedlnbxux2j3.jpg" alt="Image" width="800" height="1346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Friudwkw5ju4l7n10hpvv.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Friudwkw5ju4l7n10hpvv.jpg" alt="Image" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8jknwxmunxia5cllkhf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb8jknwxmunxia5cllkhf.jpg" alt="Image" width="800" height="535"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What It Means&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;5G is the &lt;strong&gt;fifth generation&lt;/strong&gt; of mobile networks — but it's not just "faster internet."&lt;/p&gt;

&lt;p&gt;5G brings &lt;strong&gt;three superpowers&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Superpower&lt;/th&gt;
&lt;th&gt;What It Means&lt;/th&gt;
&lt;th&gt;Why It Matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;⚡ &lt;strong&gt;Speed&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Up to 20 Gbps (20x faster than 4G)&lt;/td&gt;
&lt;td&gt;Stream 8K video on your phone without buffering&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⏱️ &lt;strong&gt;Low Latency&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;1ms delay (vs 50ms on 4G)&lt;/td&gt;
&lt;td&gt;Remote surgery, self-driving cars become possible&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📱 &lt;strong&gt;Massive Connections&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;1 million devices per km²&lt;/td&gt;
&lt;td&gt;A stadium of 80,000 people — everyone connects&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;On 4G, latency is a minor annoyance.&lt;br&gt;
On 5G, latency becomes &lt;strong&gt;a matter of life and death&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Simple Example&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Think of internet speed like &lt;strong&gt;downloading a 2-hour movie&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;3G&lt;/strong&gt;: 26 hours (more than a full day!)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;4G&lt;/strong&gt;: 6 minutes&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5G&lt;/strong&gt;: 3.6 seconds&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But speed alone is not the point. The real game-changer is &lt;strong&gt;latency&lt;/strong&gt; — the delay between action and response.&lt;/p&gt;

&lt;p&gt;Imagine you're playing an online game:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;4G latency (50ms)&lt;/strong&gt;: You press "shoot" → small delay → character shoots&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5G latency (1ms)&lt;/strong&gt;: You press "shoot" → &lt;strong&gt;instant&lt;/strong&gt; response&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That 49 milliseconds doesn't matter much for gaming. But for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Remote surgery? It's &lt;strong&gt;life or death&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Self-driving cars? It's &lt;strong&gt;crash or safe&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;VR experience? It's &lt;strong&gt;nausea or immersion&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Real-World Illustration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Why does 5G matter in real life?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Remote Surgery&lt;/strong&gt;: In China, a surgeon in Beijing operated on a patient &lt;strong&gt;3,000 km away&lt;/strong&gt; using 5G and robotic arms. The delay? Only 2 milliseconds. The patient couldn't tell the doctor wasn't in the room.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Self-Driving Cars&lt;/strong&gt;: A car traveling at 100 km/h needs to make instant decisions.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;On 4G (50ms delay) → the car travels &lt;strong&gt;1.4 meters blind&lt;/strong&gt; before reacting&lt;/li&gt;
&lt;li&gt;On 5G (1ms delay) → the car travels only &lt;strong&gt;3 centimeters&lt;/strong&gt; before reacting&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That's the difference between a safe stop and a collision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud Gaming&lt;/strong&gt;: Services like Xbox Cloud Gaming and NVIDIA GeForce NOW stream high-end games to your phone. No expensive hardware needed. The game runs on a powerful server and the video streams to you. Like &lt;strong&gt;Netflix, but for gaming&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;What Comes After 5G?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;6G&lt;/strong&gt; is expected around &lt;strong&gt;2030&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Speed: up to 1,000 Gbps (50x faster than 5G)&lt;/li&gt;
&lt;li&gt;Latency: 0.1 milliseconds&lt;/li&gt;
&lt;li&gt;AI-native network&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Holographic communication&lt;/strong&gt; — 3D images of people projected in your room&lt;/li&gt;
&lt;li&gt;Satellite internet everywhere&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Imagine video calling someone — not on a flat screen, but as a &lt;strong&gt;3D hologram standing in your room&lt;/strong&gt;. Like Star Wars, but real.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Academic Framing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This topic connects to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Network Architecture &amp;amp; Protocols&lt;/strong&gt; (how mobile networks are designed)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge Computing&lt;/strong&gt; (processing data closer to users, not in distant servers)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Quality of Service (QoS)&lt;/strong&gt; in real-time distributed systems&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wireless Communication Theory&lt;/strong&gt; (spectrum, bandwidth, signal propagation)&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Teaching Hook for Students&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Ask students:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If latency becomes essentially ZERO, what new application becomes possible that is &lt;strong&gt;impossible&lt;/strong&gt; today?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question trains &lt;strong&gt;creative systems thinking&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;2. AI on Mobile — Your Phone Gets a Brain&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5zolvkaznqv70mxub0ak.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5zolvkaznqv70mxub0ak.jpg" alt="Image" width="800" height="376"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fslimbook.com%2Fweb%2Fimage%2F166042%2Finfograf%25C3%25ADa_CPUs%2520AI%2520NPU_2.png%3Faccess_token%3Dd4facd0a-9917-4d81-b846-a9e8faaaf529" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fslimbook.com%2Fweb%2Fimage%2F166042%2Finfograf%25C3%25ADa_CPUs%2520AI%2520NPU_2.png%3Faccess_token%3Dd4facd0a-9917-4d81-b846-a9e8faaaf529" alt="Image" width="1500" height="843"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhvgwqepf5jhcvc639so0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhvgwqepf5jhcvc639so0.png" alt="Image" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What It Means&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;AI is already &lt;strong&gt;everywhere&lt;/strong&gt; in your phone — you just don't notice it because it works so well:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;What's Actually Happening&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;📸 Portrait mode&lt;/td&gt;
&lt;td&gt;AI separates you from the background and blurs it&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;⌨️ Autocorrect&lt;/td&gt;
&lt;td&gt;AI predicts your next word based on patterns&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🗺️ "Fastest route"&lt;/td&gt;
&lt;td&gt;AI analyzes real-time traffic from millions of drivers&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🔒 Face ID&lt;/td&gt;
&lt;td&gt;AI maps and recognizes YOUR unique face&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;📞 Spam detection&lt;/td&gt;
&lt;td&gt;AI filters suspicious calls and messages&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;The big shift now is &lt;strong&gt;WHERE&lt;/strong&gt; that AI runs.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Simple Example: Cloud AI vs On-Device AI&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Before (Cloud AI):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You take a photo of a flower → Phone sends image to Google's server via internet → Server processes it → Sends answer back → "It's a sunflower!" ⏱️ 2–3 seconds&lt;/p&gt;

&lt;p&gt;Problems:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Needs internet (what if you have no signal?)&lt;/li&gt;
&lt;li&gt;Slow (round trip to server and back)&lt;/li&gt;
&lt;li&gt;Privacy risk (your photo goes to someone else's server)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Now (On-Device AI):&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You take a photo → Phone's &lt;strong&gt;NPU (Neural Processing Unit)&lt;/strong&gt; processes it locally → "It's a sunflower!" ⏱️ 0.1 seconds&lt;/p&gt;

&lt;p&gt;Benefits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;No internet needed&lt;/li&gt;
&lt;li&gt;Much faster&lt;/li&gt;
&lt;li&gt;Completely private — data never leaves your phone&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Think of it this way:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cloud AI&lt;/strong&gt; = Calling a friend for every answer (slow, needs connection)&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;On-Device AI&lt;/strong&gt; = Having the knowledge in your own brain (fast, private)&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Real-World Illustration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;How your camera actually works:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You point your camera at a sunset. You press the button. In &lt;strong&gt;0.5 seconds&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Camera takes &lt;strong&gt;9 photos&lt;/strong&gt; at different brightness levels&lt;/li&gt;
&lt;li&gt;AI chip analyzes all 9 photos&lt;/li&gt;
&lt;li&gt;AI &lt;strong&gt;combines the best parts&lt;/strong&gt; of each photo&lt;/li&gt;
&lt;li&gt;AI enhances colors, sharpness, and contrast&lt;/li&gt;
&lt;li&gt;You get &lt;strong&gt;ONE perfect photo&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;All of this happens on your phone. No internet. No cloud. Just the AI chip.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You think you're a good photographer.&lt;br&gt;
Actually... your phone's AI is. 😄&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Where Is Mobile AI Going?&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Today&lt;/strong&gt;: You talk TO your phone.&lt;br&gt;
"Hey Google, set an alarm for 7 AM." → Done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Near future&lt;/strong&gt;: Your phone talks to YOU.&lt;/p&gt;

&lt;p&gt;Imagine: You have a meeting at 9 AM tomorrow.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your phone checks traffic → sets alarm at 7:15 (traffic is light)&lt;/li&gt;
&lt;li&gt;Pre-orders your usual coffee from the nearby cafe&lt;/li&gt;
&lt;li&gt;Checks weather → reminds you to bring an umbrella&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;You didn't ask for any of this.&lt;/strong&gt; Your phone just... KNEW.&lt;/p&gt;

&lt;p&gt;This is called &lt;strong&gt;proactive AI&lt;/strong&gt; or &lt;strong&gt;context-aware AI&lt;/strong&gt; — instead of you telling the phone what to do, the phone anticipates what you NEED.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"The best interface is &lt;strong&gt;NO interface&lt;/strong&gt;."&lt;br&gt;
— Golden Krishna, UX Designer&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Design Implication&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;On-device AI changes how we build apps:&lt;/p&gt;

&lt;p&gt;✔ Design for &lt;strong&gt;intelligence&lt;/strong&gt; — apps should anticipate, not just respond&lt;br&gt;
✔ Consider &lt;strong&gt;offline AI&lt;/strong&gt; — not all users have stable internet&lt;br&gt;
✔ Balance &lt;strong&gt;personalization vs privacy&lt;/strong&gt; — more data = smarter AI, but also more risk&lt;br&gt;
✔ Optimize for &lt;strong&gt;NPU chips&lt;/strong&gt; — AI models must be small enough to run on limited hardware&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Academic Framing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This connects to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Machine Learning Model Optimization&lt;/strong&gt; (quantization, pruning, distillation)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edge Computing vs Cloud Computing&lt;/strong&gt; trade-offs&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Privacy by Design&lt;/strong&gt; principles&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;TinyML&lt;/strong&gt; — Machine Learning for resource-constrained devices&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human-Computer Interaction (HCI)&lt;/strong&gt; — proactive vs reactive interfaces&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Teaching Hook for Students&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Ask students:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If your phone's AI could learn everything about your habits, is that &lt;strong&gt;helpful&lt;/strong&gt; or &lt;strong&gt;scary&lt;/strong&gt;? Where should the line be?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question trains &lt;strong&gt;ethical thinking about AI&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;3. Foldables and Wearables — New Shapes, New Possibilities&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fazh4sl88q3dx8qygfgzf.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fazh4sl88q3dx8qygfgzf.jpg" alt="Image" width="800" height="520"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7adr3odgvt4n0i6jjwll.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7adr3odgvt4n0i6jjwll.jpg" alt="Image" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvric6ucmyymml5o3f2x.webp" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyvric6ucmyymml5o3f2x.webp" alt="Image" width="550" height="550"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What It Means&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;For 15 years, phones have been getting &lt;strong&gt;BIGGER&lt;/strong&gt; — from 3.5 inches to nearly 7 inches.&lt;/p&gt;

&lt;p&gt;The reason is obvious: we want big screens for content — videos, games, reading, multitasking.&lt;/p&gt;

&lt;p&gt;But here's the &lt;strong&gt;conflict&lt;/strong&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;We want &lt;strong&gt;BIG screens&lt;/strong&gt; for content.&lt;br&gt;
We want &lt;strong&gt;SMALL phones&lt;/strong&gt; for portability.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Foldable phones solve both problems.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Simple Example&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Samsung Galaxy Z Fold:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Closed&lt;/strong&gt;: Normal phone (6.2" screen) — fits in your pocket ✔&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Open&lt;/strong&gt;: Mini tablet (7.6" screen) — great for content ✔&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Samsung Galaxy Z TriFold (2025):&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Closed&lt;/strong&gt;: Regular 6.5" phone&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Fully open&lt;/strong&gt;: 10" tablet — the largest screen ever on a Galaxy phone&lt;/li&gt;
&lt;li&gt;Only &lt;strong&gt;3.9mm thin&lt;/strong&gt; at its thinnest point&lt;/li&gt;
&lt;li&gt;Runs 3 apps simultaneously side-by-side&lt;/li&gt;
&lt;li&gt;Supports Samsung DeX for desktop-like experience&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;One device. Multiple form factors. Zero compromise.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Real-World Illustration: Impact on Development&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Foldable screens create &lt;strong&gt;new challenges for developers&lt;/strong&gt;:&lt;/p&gt;

&lt;p&gt;Your app must work in &lt;strong&gt;BOTH modes&lt;/strong&gt; — phone layout AND tablet layout.&lt;/p&gt;

&lt;p&gt;When the user folds or unfolds the phone, your app must:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Instantly switch&lt;/strong&gt; layouts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not crash&lt;/strong&gt; during transition&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not lose data&lt;/strong&gt; during the change&lt;/li&gt;
&lt;li&gt;Handle the &lt;strong&gt;screen crease&lt;/strong&gt; at the fold point&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Remember last week's challenge about &lt;strong&gt;device fragmentation&lt;/strong&gt;? Foldables make it even more complex.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"It works on my phone" was never an acceptable conclusion.&lt;br&gt;
With foldables, it's even LESS acceptable.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Beyond Phones: Wearable Computing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The future of mobile computing is not just about phones. Computing is moving &lt;strong&gt;from your pocket to your body&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Device&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;th&gt;Example&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;⌚ &lt;strong&gt;Smart Watch&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Heart rate, steps, messages, payments&lt;/td&gt;
&lt;td&gt;Apple Watch, Galaxy Watch&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;👓 &lt;strong&gt;Smart Glasses&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Navigation, translation, AR overlay, recording&lt;/td&gt;
&lt;td&gt;Meta Ray-Ban, Apple Vision Pro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;💍 &lt;strong&gt;Smart Ring&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Sleep tracking, health data, NFC payment&lt;/td&gt;
&lt;td&gt;Samsung Galaxy Ring&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🎧 &lt;strong&gt;Smart Earbuds&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Real-time translation, AI assistant, noise control&lt;/td&gt;
&lt;td&gt;Google Pixel Buds, AirPods Pro&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🩹 &lt;strong&gt;Smart Patches&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Blood sugar monitoring, medicine delivery (future)&lt;/td&gt;
&lt;td&gt;Dexcom G7, Abbott Libre&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;"The phone might not disappear — but it will &lt;strong&gt;share its job&lt;/strong&gt; with many devices on your body."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Design Implication&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Designing for wearables requires different thinking:&lt;/p&gt;

&lt;p&gt;✔ &lt;strong&gt;Micro-interactions&lt;/strong&gt; — screen is tiny, interactions must be ultra-simple&lt;br&gt;
✔ &lt;strong&gt;Glanceable information&lt;/strong&gt; — users look for 2–3 seconds, not 30&lt;br&gt;
✔ &lt;strong&gt;Context-first design&lt;/strong&gt; — show only what matters RIGHT NOW&lt;br&gt;
✔ &lt;strong&gt;Battery awareness&lt;/strong&gt; — wearable batteries are even smaller than phones&lt;br&gt;
✔ &lt;strong&gt;Multi-device continuity&lt;/strong&gt; — start task on watch, continue on phone, finish on tablet&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Academic Framing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This connects to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Responsive &amp;amp; Adaptive UI Design&lt;/strong&gt; across dynamic form factors&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Ubiquitous Computing&lt;/strong&gt; (Mark Weiser's vision — computing that disappears into the environment)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Multi-device UX Design&lt;/strong&gt; and continuity frameworks&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Wearable Sensor Technology&lt;/strong&gt; and health informatics&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Human Factors Engineering&lt;/strong&gt; — designing for body-worn devices&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Teaching Hook for Students&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Ask students:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If computing moves from your phone to your body, do you even NEED a phone anymore? What's the &lt;strong&gt;minimum device&lt;/strong&gt; you could live with?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question trains &lt;strong&gt;platform-independent design thinking&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;4. AR and VR on Mobile — Mixing Real and Digital&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdxnpfs8tfn9wc1bjmbwi.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdxnpfs8tfn9wc1bjmbwi.jpg" alt="Image" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlul8uojtwhkn14jjgu4.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlul8uojtwhkn14jjgu4.jpg" alt="Image" width="800" height="531"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.researchgate.net%2Fpublication%2F370380136%2Ffigure%2Ffig3%2FAS%253A11431281154328536%25401682772283035%2FComparison-between-AR-and-VR.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.researchgate.net%2Fpublication%2F370380136%2Ffigure%2Ffig3%2FAS%253A11431281154328536%25401682772283035%2FComparison-between-AR-and-VR.jpg" alt="Image" width="588" height="302"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What It Means&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Two technologies are merging the real and digital worlds:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AR (Augmented Reality)&lt;/strong&gt; = Real world + digital objects &lt;strong&gt;added on top&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You see your real room through your phone camera... and there's a virtual sofa in the corner. You can walk around it. Change its color. But it's not real.&lt;/p&gt;

&lt;p&gt;Example: Pokémon GO, IKEA Place app&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;VR (Virtual Reality)&lt;/strong&gt; = Completely digital world (real world &lt;strong&gt;blocked&lt;/strong&gt;)&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;You put on a headset. Suddenly you're standing on top of Mount Everest. You look around — 360 degrees of snow and sky. Nothing is real. Everything is digital.&lt;/p&gt;

&lt;p&gt;Example: Meta Quest, PlayStation VR&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Simple Example: AR You Can Try Right Now&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;AR is not science fiction. It's on your phone &lt;strong&gt;today&lt;/strong&gt;:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;App&lt;/th&gt;
&lt;th&gt;What It Does&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IKEA Place&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Place virtual furniture in your real room before buying&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Apple Measure&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Point your phone at a table → AR measures it. No ruler needed&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Google Translate&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Point camera at Japanese text → it transforms to English &lt;strong&gt;on screen, in real-time&lt;/strong&gt;
&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Google Maps Live View&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Giant arrows appear &lt;strong&gt;on the real street&lt;/strong&gt; showing you where to walk&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;These are simple but powerful examples of AR &lt;strong&gt;already integrated&lt;/strong&gt; into daily life through mobile devices.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Real-World Illustration: The Future of AR&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Some experts believe that in 10–15 years, &lt;strong&gt;we won't carry phones anymore&lt;/strong&gt;. Instead, we'll wear &lt;strong&gt;lightweight AR glasses&lt;/strong&gt; that look like normal glasses.&lt;/p&gt;

&lt;p&gt;Imagine your day:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You look at your desk → &lt;strong&gt;emails float&lt;/strong&gt; in the air next to your coffee cup&lt;/li&gt;
&lt;li&gt;You walk outside → &lt;strong&gt;navigation arrows&lt;/strong&gt; appear on the road ahead&lt;/li&gt;
&lt;li&gt;You meet someone at a conference → their &lt;strong&gt;name tag floats&lt;/strong&gt; above their head&lt;/li&gt;
&lt;li&gt;You sit at work → your &lt;strong&gt;dashboard appears&lt;/strong&gt; on your desk, as big as you want&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No phone to pull out. No screen. The digital world and the real world become &lt;strong&gt;one&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Apple Vision Pro&lt;/strong&gt; ($3,499, 2024) is the first step. It's big and expensive.&lt;/p&gt;

&lt;p&gt;But remember — the first mobile phones were also big and expensive. And look where we are now.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;AR in Education&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;AR is transforming how students learn:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Subject&lt;/th&gt;
&lt;th&gt;Traditional Approach&lt;/th&gt;
&lt;th&gt;With AR&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Biology&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Read about the heart in a textbook&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Walk inside&lt;/strong&gt; a 3D beating heart&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;History&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Look at photos of ancient Rome&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Stand in&lt;/strong&gt; the Colosseum and look around&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Chemistry&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;See 2D diagrams of molecules&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Pick up and rotate&lt;/strong&gt; 3D molecular structures&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Geography&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Study flat maps&lt;/td&gt;
&lt;td&gt;
&lt;strong&gt;Explore&lt;/strong&gt; a 3D globe with terrain and data layers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;"AR meets learners right where they are, catering to a diversity of styles and needs to ensure every child is reached."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Design Implication&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Designing for AR/VR requires new thinking:&lt;/p&gt;

&lt;p&gt;✔ &lt;strong&gt;Spatial UI Design&lt;/strong&gt; — interfaces exist in 3D space, not flat screens&lt;br&gt;
✔ &lt;strong&gt;Comfort &amp;amp; Safety&lt;/strong&gt; — long AR/VR sessions cause eye strain and motion sickness&lt;br&gt;
✔ &lt;strong&gt;Real-world context&lt;/strong&gt; — AR apps must understand physical environments (lighting, surfaces, obstacles)&lt;br&gt;
✔ &lt;strong&gt;New input methods&lt;/strong&gt; — hand gestures, eye tracking, voice commands (no touchscreen!)&lt;br&gt;
✔ &lt;strong&gt;Privacy concerns&lt;/strong&gt; — AR glasses with cameras raise serious surveillance questions&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Academic Framing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This connects to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Spatial Computing&lt;/strong&gt; and 3D interaction design&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Computer Vision&lt;/strong&gt; — how devices "see" and understand the real world&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Presence Theory&lt;/strong&gt; — the psychological sense of "being there" in virtual environments&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mixed Reality (MR) Continuum&lt;/strong&gt; (Milgram &amp;amp; Kishino, 1994) — the spectrum from fully real to fully virtual&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Constructivist Learning Theory&lt;/strong&gt; — learning by doing and experiencing&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Teaching Hook for Students&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Ask students:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"Would you give up your phone for AR glasses? What would you &lt;strong&gt;gain&lt;/strong&gt;? What would you &lt;strong&gt;lose&lt;/strong&gt;?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question forces students to think about &lt;strong&gt;trade-offs in technology adoption&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;5. IoT — Your Phone as the Remote Control for Everything&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.researchgate.net%2Fpublication%2F325516236%2Ffigure%2Ffig1%2FAS%253A745546511835136%25401554763548064%2FThe-concept-of-the-Wireless-Home-Automation-System-WHAS-using-IoT-Source-2.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.researchgate.net%2Fpublication%2F325516236%2Ffigure%2Ffig1%2FAS%253A745546511835136%25401554763548064%2FThe-concept-of-the-Wireless-Home-Automation-System-WHAS-using-IoT-Source-2.png" alt="Image" width="753" height="552"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.mdpi.com%2FIoT%2FIoT-03-00022%2Farticle_deploy%2Fhtml%2Fimages%2FIoT-03-00022-g013.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fwww.mdpi.com%2FIoT%2FIoT-03-00022%2Farticle_deploy%2Fhtml%2Fimages%2FIoT-03-00022-g013.png" alt="Image" width="800" height="562"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1osyp9l85td46q79b9t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1osyp9l85td46q79b9t.png" alt="Image" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What It Means&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;IoT&lt;/strong&gt; = Internet of Things&lt;/p&gt;

&lt;p&gt;Very simple: take &lt;strong&gt;everyday objects&lt;/strong&gt; — lamp, thermostat, door lock, TV — and connect them to the internet.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before IoT&lt;/strong&gt;: A lamp is just a lamp. Flip the switch. ON or OFF. That's it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;With IoT&lt;/strong&gt;: A smart lamp. Control it from your phone. Any color. Any brightness. Scheduled on and off. Responds to voice commands. Turns off automatically when you leave the room.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Your phone becomes the &lt;strong&gt;remote control for everything&lt;/strong&gt; in your life.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Simple Example: A Day in a Smart Home (2028)&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Time&lt;/th&gt;
&lt;th&gt;What Happens&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;⏰ &lt;strong&gt;6:30 AM&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Smart alarm detects you're in &lt;strong&gt;light sleep&lt;/strong&gt; → wakes you at the perfect moment&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;☀️ &lt;strong&gt;6:31 AM&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Smart blinds open slowly → natural sunlight fills the room&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;☕ &lt;strong&gt;6:32 AM&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Coffee machine starts automatically → ready when you reach the kitchen&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🚿 &lt;strong&gt;7:00 AM&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Smart mirror shows weather, calendar, news. Shower heats to YOUR temperature&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🚗 &lt;strong&gt;7:30 AM&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Smart car pre-cools based on weather. Phone shows fastest route. Door locks automatically&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🏠 &lt;strong&gt;6:00 PM&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;Phone detects you're 10 min from home → AC turns on, lights turn on&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;🌙 &lt;strong&gt;10:00 PM&lt;/strong&gt;
&lt;/td&gt;
&lt;td&gt;You say "Good night" → lights off, doors locked, alarm set, temperature adjusted&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;One voice command. Everything responds.&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Real-World Illustration: The Numbers&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The scale of IoT is staggering:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Year&lt;/th&gt;
&lt;th&gt;Connected Devices Worldwide&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;2015&lt;/td&gt;
&lt;td&gt;15 billion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2020&lt;/td&gt;
&lt;td&gt;30 billion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2025&lt;/td&gt;
&lt;td&gt;75 billion&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;2030&lt;/td&gt;
&lt;td&gt;&lt;strong&gt;125 billion&lt;/strong&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;By 2030, there will be approximately &lt;strong&gt;15 connected devices for every person on Earth&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;What does this mean for mobile computing students?&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More apps to build&lt;/li&gt;
&lt;li&gt;More platforms to develop for&lt;/li&gt;
&lt;li&gt;More problems to solve&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;More job opportunities&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;The future of mobile is NOT just phones. It's &lt;strong&gt;everything&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Design Implication&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;IoT changes how we design mobile experiences:&lt;/p&gt;

&lt;p&gt;✔ &lt;strong&gt;Multi-device orchestration&lt;/strong&gt; — your app controls many devices, not just one screen&lt;br&gt;
✔ &lt;strong&gt;Ambient interfaces&lt;/strong&gt; — interaction through voice, sensors, automation — not just tapping&lt;br&gt;
✔ &lt;strong&gt;Network reliability&lt;/strong&gt; — what happens when one device loses connection?&lt;br&gt;
✔ &lt;strong&gt;Security at scale&lt;/strong&gt; — 15 devices per person = 15 potential entry points for hackers&lt;br&gt;
✔ &lt;strong&gt;Interoperability&lt;/strong&gt; — devices from different manufacturers must work together (Matter protocol)&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Academic Framing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This connects to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Distributed Systems&lt;/strong&gt; — many devices working together&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Embedded Systems Programming&lt;/strong&gt; — code that runs on small, resource-constrained devices&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Network Security&lt;/strong&gt; — securing devices with limited processing power&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cyber-Physical Systems (CPS)&lt;/strong&gt; — the bridge between digital computing and the physical world&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Systems Architecture&lt;/strong&gt; — designing systems that scale to billions of connected devices&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Teaching Hook for Students&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Ask students:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"If every object in your room could connect to the internet — your chair, your lamp, your door, your mirror — which ONE would you make smart first? Why?"&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question trains &lt;strong&gt;prioritization and user-centered design thinking&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion: The Connected Future&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;These five trends do not work &lt;strong&gt;alone&lt;/strong&gt;. They work &lt;strong&gt;together&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Consider this scenario:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A doctor wears &lt;strong&gt;AR glasses&lt;/strong&gt; (Trend 4).&lt;br&gt;
The glasses use &lt;strong&gt;AI&lt;/strong&gt; (Trend 2) to highlight a tumor during surgery.&lt;br&gt;
The surgery data streams over &lt;strong&gt;5G&lt;/strong&gt; (Trend 1) to a specialist 1,000 km away.&lt;br&gt;
The specialist watches on their &lt;strong&gt;foldable tablet&lt;/strong&gt; (Trend 3).&lt;br&gt;
All medical instruments are &lt;strong&gt;IoT-connected&lt;/strong&gt; (Trend 5), sharing real-time data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;All five trends — working together — saving a life.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;What This Means For You As Students&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The mobile developer of the future needs new skills:&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Skill&lt;/th&gt;
&lt;th&gt;Why It Matters&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cross-platform development&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Build for phone + watch + glasses + car&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AI/ML integration&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Make apps intelligent, not just functional&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Responsive &amp;amp; adaptive design&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Phone → tablet → foldable → watch → glasses&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Privacy &amp;amp; security&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;More devices = more data = more risk&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;UX for new interfaces&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Voice, gesture, gaze — beyond touch&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;"The mobile developer of the future is NOT just an app developer.&lt;br&gt;
They are a &lt;strong&gt;connected experience designer&lt;/strong&gt;."&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;The Mobile Designer's Mindset&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Good mobile design — today and in the future — is about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Constraints&lt;/strong&gt; — every device has limitations; design within them&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Empathy&lt;/strong&gt; — understand real users in real contexts&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Trade-offs&lt;/strong&gt; — there's never a perfect solution, only the best balance&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Adaptability&lt;/strong&gt; — technologies change fast; principles endure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A good mobile designer always asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"What is the &lt;strong&gt;minimum&lt;/strong&gt; needed for the user to succeed?"&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Key Vocabulary Summary&lt;/strong&gt;
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Term&lt;/th&gt;
&lt;th&gt;Simple Explanation&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;5G&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Fifth generation mobile network — very fast, very low delay&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;6G&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Sixth generation (expected ~2030) — holographic, AI-native&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Latency&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;The delay between an action and its response&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;NPU&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Neural Processing Unit — AI chip inside your phone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;On-Device AI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AI that runs on your phone, not on a distant server&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Proactive AI&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;AI that acts without you asking&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Foldable Phone&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Phone with a flexible screen that bends to become larger&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Wearable&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Computing device you wear on your body&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AR&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Augmented Reality — real world + digital objects added&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;VR&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Virtual Reality — completely digital, immersive world&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;IoT&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Internet of Things — everyday objects connected to internet&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Cloud Gaming&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Games running on remote servers, streamed to your phone&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Smart Home&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;House with IoT-connected, automated devices&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Edge Computing&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Processing data near the user instead of in distant data centers&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

</description>
      <category>computerscience</category>
      <category>learning</category>
      <category>mobile</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Challenges for Design in Mobile Computing</title>
      <dc:creator>ahmadasroni38</dc:creator>
      <pubDate>Sun, 01 Feb 2026 23:31:47 +0000</pubDate>
      <link>https://forem.com/ahmadasroni38/challenges-for-design-in-mobile-computing-236e</link>
      <guid>https://forem.com/ahmadasroni38/challenges-for-design-in-mobile-computing-236e</guid>
      <description>&lt;h3&gt;
  
  
  &lt;em&gt;Bridging Theory, Practice, and Real-World Constraints&lt;/em&gt;
&lt;/h3&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Introduction: Why Mobile Design Is Different (and Harder)&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Designing for mobile computing is &lt;strong&gt;not simply shrinking desktop applications&lt;/strong&gt; into smaller screens. Mobile devices live in a world of &lt;strong&gt;constraints&lt;/strong&gt;—physical, technical, contextual, and human.&lt;/p&gt;

&lt;p&gt;As practitioners, we deal with &lt;strong&gt;real users&lt;/strong&gt;, &lt;strong&gt;real devices&lt;/strong&gt;, and &lt;strong&gt;real limitations&lt;/strong&gt;.&lt;br&gt;
As academics, we seek &lt;strong&gt;general principles&lt;/strong&gt;, &lt;strong&gt;design frameworks&lt;/strong&gt;, and &lt;strong&gt;repeatable knowledge&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Mobile computing sits at the intersection of both worlds.&lt;/p&gt;

&lt;p&gt;In this session, we will explore &lt;strong&gt;five fundamental challenges in mobile design&lt;/strong&gt;, supported by &lt;strong&gt;simple, relatable examples&lt;/strong&gt; and &lt;strong&gt;strong visual imagination&lt;/strong&gt;, so students can &lt;em&gt;feel&lt;/em&gt; the problem—not just memorize it.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;1. Limited Screen Real Estate&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rlrdmkemz4t7870ph2v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0rlrdmkemz4t7870ph2v.png" alt="Image" width="647" height="392"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyfmo92op0f3fgwc69gmy.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyfmo92op0f3fgwc69gmy.jpg" alt="Image" width="800" height="682"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyfkdqfrcdpznfbgpqdvu.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyfkdqfrcdpznfbgpqdvu.jpg" alt="Image" width="800" height="2000"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What It Means&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Mobile screens are &lt;strong&gt;small, narrow, and vertically constrained&lt;/strong&gt;.&lt;br&gt;
Unlike desktops, &lt;strong&gt;every pixel matters&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;On mobile, design is not about adding features.&lt;br&gt;
It’s about &lt;strong&gt;deciding what to remove&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Simple Example&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Imagine you want to design:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A &lt;strong&gt;hospital information system&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Or a &lt;strong&gt;campus asset management app&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On desktop, you might show:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Name&lt;/li&gt;
&lt;li&gt;ID&lt;/li&gt;
&lt;li&gt;Location&lt;/li&gt;
&lt;li&gt;Status&lt;/li&gt;
&lt;li&gt;Last Update&lt;/li&gt;
&lt;li&gt;Action Buttons&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On mobile?&lt;/p&gt;

&lt;p&gt;If you show everything:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Text becomes tiny&lt;/li&gt;
&lt;li&gt;Buttons overlap&lt;/li&gt;
&lt;li&gt;Users misclick&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Result: &lt;strong&gt;bad usability, frustrated users&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Real-World Illustration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Think of &lt;strong&gt;Google Maps&lt;/strong&gt; on mobile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It does &lt;strong&gt;not&lt;/strong&gt; show all controls at once&lt;/li&gt;
&lt;li&gt;Buttons appear &lt;strong&gt;only when needed&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Information is layered, not dumped&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is called:&lt;br&gt;
👉 &lt;strong&gt;Progressive Disclosure&lt;/strong&gt;&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Design Principles&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;✔ Prioritize &lt;strong&gt;primary tasks&lt;/strong&gt;&lt;br&gt;
✔ Hide secondary information&lt;br&gt;
✔ Use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Cards&lt;/li&gt;
&lt;li&gt;Bottom sheets&lt;/li&gt;
&lt;li&gt;Tabs&lt;/li&gt;
&lt;li&gt;Collapsible sections&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Teaching Hook for Students&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Ask students:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“If your app had only &lt;strong&gt;one screen&lt;/strong&gt;, what MUST be there?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question trains &lt;strong&gt;design discipline&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;2. Varied Input Modalities&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizhug0pfn3s63g5s9lvi.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fizhug0pfn3s63g5s9lvi.png" alt="Image" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fq0kw9slf5npfc20kk3.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3fq0kw9slf5npfc20kk3.jpeg" alt="Image" width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcl18c7vmopy4frzt7h2s.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcl18c7vmopy4frzt7h2s.gif" alt="Image" width="615" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What It Means&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Mobile users interact through:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Touch (tap, swipe, long press)&lt;/li&gt;
&lt;li&gt;Voice&lt;/li&gt;
&lt;li&gt;Motion (tilt, shake)&lt;/li&gt;
&lt;li&gt;Sensors (camera, GPS, fingerprint)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unlike desktop:&lt;br&gt;
❌ No mouse&lt;br&gt;
❌ No physical keyboard (most of the time)&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Simple Example&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Login form on desktop:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Username&lt;/li&gt;
&lt;li&gt;Password&lt;/li&gt;
&lt;li&gt;Captcha&lt;/li&gt;
&lt;li&gt;Submit&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;On mobile:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Keyboard covers half the screen&lt;/li&gt;
&lt;li&gt;Typing is slow&lt;/li&gt;
&lt;li&gt;Users make more errors&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s why modern mobile apps use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Face ID / Fingerprint&lt;/li&gt;
&lt;li&gt;OTP auto-fill&lt;/li&gt;
&lt;li&gt;“Continue with Google”&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Everyday Illustration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Why does WhatsApp:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Support &lt;strong&gt;voice messages&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Support &lt;strong&gt;swipe to reply&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Support &lt;strong&gt;hold-to-record&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because &lt;strong&gt;typing is not always convenient&lt;/strong&gt;:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Walking&lt;/li&gt;
&lt;li&gt;Riding a motorbike (dangerous, but real)&lt;/li&gt;
&lt;li&gt;Holding groceries&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Design Insight&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Mobile input is:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Imprecise&lt;/li&gt;
&lt;li&gt;Context-dependent&lt;/li&gt;
&lt;li&gt;Error-prone&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;So good mobile design:&lt;br&gt;
✔ Minimizes typing&lt;br&gt;
✔ Uses gestures carefully&lt;br&gt;
✔ Provides large touch targets&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Academic Framing&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This aligns with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Human-Computer Interaction (HCI)&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Fitts’s Law&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Cognitive Load Theory&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;3. Diverse Usage Contexts&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fen.horus-x.com%2Fcdn%2Fshop%2Farticles%2FFemme_utilisant_un_telephone_portable_femme_portant_des_lunettes_de_soleil_Horus_X_b62ca2b5-d4ba-4bea-ba26-f5527b125450.jpg%3Fv%3D1710831567%26width%3D1200" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fen.horus-x.com%2Fcdn%2Fshop%2Farticles%2FFemme_utilisant_un_telephone_portable_femme_portant_des_lunettes_de_soleil_Horus_X_b62ca2b5-d4ba-4bea-ba26-f5527b125450.jpg%3Fv%3D1710831567%26width%3D1200" alt="Image" width="1200" height="675"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7dxcok1sqdg3s2yvgnof.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7dxcok1sqdg3s2yvgnof.jpg" alt="Image" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmjg76sl86jm8darqjxp.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flmjg76sl86jm8darqjxp.jpg" alt="Image" width="612" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What It Means&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Mobile apps are used:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Indoors&lt;/li&gt;
&lt;li&gt;Outdoors&lt;/li&gt;
&lt;li&gt;While moving&lt;/li&gt;
&lt;li&gt;Under sunlight&lt;/li&gt;
&lt;li&gt;In noisy environments&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Unlike desktop apps:&lt;br&gt;
❌ No controlled environment&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Simple Example&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;An app with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Light gray text&lt;/li&gt;
&lt;li&gt;Thin fonts&lt;/li&gt;
&lt;li&gt;Small icons&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Looks beautiful in:&lt;br&gt;
✔ Office&lt;br&gt;
✔ Night&lt;/p&gt;

&lt;p&gt;But becomes &lt;strong&gt;unusable&lt;/strong&gt; under:&lt;br&gt;
☀️ Sunlight&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Real-Life Illustration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Why does &lt;strong&gt;Gojek / Grab&lt;/strong&gt; use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;High contrast colors&lt;/li&gt;
&lt;li&gt;Big buttons&lt;/li&gt;
&lt;li&gt;Simple layouts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because drivers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Are moving&lt;/li&gt;
&lt;li&gt;Need quick interaction&lt;/li&gt;
&lt;li&gt;Cannot focus long&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Design Implication&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Mobile design must consider:&lt;br&gt;
✔ Lighting&lt;br&gt;
✔ Movement&lt;br&gt;
✔ Interruptions&lt;br&gt;
✔ One-handed use&lt;/p&gt;

&lt;p&gt;Good design answers:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What if the user is distracted?”&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Teaching Moment&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Ask students:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“Where will this app be used? Sitting? Standing? Moving?”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;That question separates &lt;strong&gt;academic design&lt;/strong&gt; from &lt;strong&gt;real-world design&lt;/strong&gt;.&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;4. Limited Resources&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpc1iwmfw8b1297popbep.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpc1iwmfw8b1297popbep.jpg" alt="Image" width="756" height="1008"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.sftcdn.net%2Fimages%2Ft_app-cover-s%252Cf_auto%2Fp%2F23eb54bc-72ba-415e-bdaf-4025818e26dc%2F275525339%2Fcpu-throttling-test-screenshot" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimages.sftcdn.net%2Fimages%2Ft_app-cover-s%252Cf_auto%2Fp%2F23eb54bc-72ba-415e-bdaf-4025818e26dc%2F275525339%2Fcpu-throttling-test-screenshot" alt="Image" width="340" height="604"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fji8h53wca7ll8yqrlrpg.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fji8h53wca7ll8yqrlrpg.jpg" alt="Image" width="800" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What It Means&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Mobile devices have limited:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Battery&lt;/li&gt;
&lt;li&gt;CPU&lt;/li&gt;
&lt;li&gt;Memory&lt;/li&gt;
&lt;li&gt;Network stability&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Even flagship phones are &lt;strong&gt;resource-sensitive&lt;/strong&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Simple Example&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;An app that:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Continuously tracks GPS&lt;/li&gt;
&lt;li&gt;Auto-refreshes every second&lt;/li&gt;
&lt;li&gt;Loads large images&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Result:&lt;br&gt;
🔋 Battery drains fast&lt;br&gt;
🔥 Phone heats up&lt;br&gt;
❌ App uninstalled&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Real-World Illustration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Why does Google:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Delay background sync&lt;/li&gt;
&lt;li&gt;Batch network requests&lt;/li&gt;
&lt;li&gt;Use caching aggressively&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Because &lt;strong&gt;battery is user trust&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;If your app kills battery:&lt;br&gt;
👉 Users delete it.&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Design Best Practices&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;✔ Optimize background tasks&lt;br&gt;
✔ Use lazy loading&lt;br&gt;
✔ Respect OS lifecycle&lt;br&gt;
✔ Design for offline-first when possible&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Academic Tie-In&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;This relates to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Mobile Operating Systems&lt;/li&gt;
&lt;li&gt;Energy-aware computing&lt;/li&gt;
&lt;li&gt;Systems optimization&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;5. Fragmented Device Landscape&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ciqgrm8ubmy7moet64b.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ciqgrm8ubmy7moet64b.jpeg" alt="Image" width="800" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.newatlas.com%2Fdims4%2Fdefault%2Fc55c199%2F2147483647%2Fstrip%2Ftrue%2Fcrop%2F1275x1080%252B0%252B0%2Fresize%2F1133x960%2521%2Fformat%2Fwebp%2Fquality%2F90%2F%3Furl%3Dhttps%253A%252F%252Fnewatlas-brightspot.s3.amazonaws.com%252Farchive%252F2017-best-smartphones-specs-features-comparison-38.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fassets.newatlas.com%2Fdims4%2Fdefault%2Fc55c199%2F2147483647%2Fstrip%2Ftrue%2Fcrop%2F1275x1080%252B0%252B0%2Fresize%2F1133x960%2521%2Fformat%2Fwebp%2Fquality%2F90%2F%3Furl%3Dhttps%253A%252F%252Fnewatlas-brightspot.s3.amazonaws.com%252Farchive%252F2017-best-smartphones-specs-features-comparison-38.jpg" alt="Image" width="800" height="677"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimagedelivery.net%2FPVooPtpJE-25QaNkbEuXvw%2F4c268491-a003-4f31-a077-bdde10206900%2Fgamma%253D0" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimagedelivery.net%2FPVooPtpJE-25QaNkbEuXvw%2F4c268491-a003-4f31-a077-bdde10206900%2Fgamma%253D0" alt="Image" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;What It Means&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Mobile ecosystem is fragmented:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Different screen sizes&lt;/li&gt;
&lt;li&gt;Different OS versions&lt;/li&gt;
&lt;li&gt;Different hardware capabilities&lt;/li&gt;
&lt;li&gt;Different manufacturers&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One app ≠ one device&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Simple Example&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Your app works perfectly on:&lt;br&gt;
✔ Your phone&lt;/p&gt;

&lt;p&gt;But crashes on:&lt;br&gt;
❌ Older Android&lt;br&gt;
❌ Smaller screen&lt;br&gt;
❌ Low RAM device&lt;/p&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Practical Illustration&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Android developers must consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;API level differences&lt;/li&gt;
&lt;li&gt;Permission changes&lt;/li&gt;
&lt;li&gt;Manufacturer customizations&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That’s why:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“It works on my phone”&lt;br&gt;
is &lt;strong&gt;not an acceptable conclusion&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  &lt;strong&gt;Design Strategy&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;✔ Responsive layouts&lt;br&gt;
✔ Flexible UI components&lt;br&gt;
✔ Graceful degradation&lt;br&gt;
✔ Extensive testing&lt;/p&gt;




&lt;h2&gt;
  
  
  &lt;strong&gt;Conclusion: The Mobile Designer’s Mindset&lt;/strong&gt;
&lt;/h2&gt;

&lt;p&gt;Mobile computing design is about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Constraints&lt;/li&gt;
&lt;li&gt;Empathy&lt;/li&gt;
&lt;li&gt;Trade-offs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A good mobile designer asks:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“What is the &lt;strong&gt;minimum&lt;/strong&gt; needed for the user to succeed?”&lt;/p&gt;
&lt;/blockquote&gt;

</description>
      <category>design</category>
      <category>mobile</category>
      <category>ui</category>
      <category>ux</category>
    </item>
    <item>
      <title>Unlocking the Future: Emerging Trends in System Evaluation and Analysis</title>
      <dc:creator>ahmadasroni38</dc:creator>
      <pubDate>Mon, 29 Dec 2025 09:16:25 +0000</pubDate>
      <link>https://forem.com/ahmadasroni38/unlocking-the-future-emerging-trends-in-system-evaluation-and-analysis-3inb</link>
      <guid>https://forem.com/ahmadasroni38/unlocking-the-future-emerging-trends-in-system-evaluation-and-analysis-3inb</guid>
      <description>&lt;p&gt;Selamat datang di bab paling menginspirasi dari buku ini: &lt;strong&gt;Tren Masa Depan&lt;/strong&gt;. Di tahun 2025 ini, evaluasi sistem informasi bukan lagi tugas rutin – ia menjadi katalisator inovasi, didorong oleh AI, cloud, dan keberlanjutan. Sebagai praktisi yang telah memimpin evaluasi di proyek cutting-edge dan akademisi yang meneliti tren disruptif, saya percaya masa depan evaluasi adalah adaptif, cerdas, dan bertanggung jawab – membantu kita membangun sistem yang tidak hanya efisien, tapi juga etis dan hijau.&lt;/p&gt;

&lt;p&gt;Bab ini dirancang mudah dipahami, dengan contoh sederhana sehari-hari, analogi menyenangkan, dan ilustrasi visual keren agar kamu cepat paham dan terinspirasi. Yuk kita jelajahi tren yang akan bentuk karirmu besok – siap jadi pioneer? 🚀&lt;/p&gt;

&lt;h3&gt;
  
  
  10.1 Evaluasi Sistem Adaptif
&lt;/h3&gt;

&lt;p&gt;Sistem adaptif adalah "sistem hidup" yang belajar dan berubah sendiri, seperti aplikasi cuaca yang update prediksi berdasarkan data real-time.&lt;/p&gt;

&lt;h4&gt;
  
  
  10.1.1 Konsep Sistem Adaptif
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.1.1.1 Definisi Sistem Adaptif&lt;/strong&gt;: Sistem yang menyesuaikan perilaku secara otomatis terhadap perubahan lingkungan.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.1.1.2 Karakteristik Sistem Adaptif&lt;/strong&gt;: Dinamis, resilient, self-optimizing – seperti pohon yang tumbuh menyesuaikan cahaya matahari.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.1.1.3 Contoh Sistem Adaptif&lt;/strong&gt;: Sistem rekomendasi e-commerce yang berubah berdasarkan tren belanja pengguna.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.1.2 Tantangan Evaluasi Sistem Adaptif
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.1.2.1 Sifat Dinamis Sistem&lt;/strong&gt;: Evaluasi statis nggak cukup karena sistem terus evolusi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.1.2.2 Perubahan Konteks&lt;/strong&gt;: Data lama bisa irrelevant seiring waktu.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.1.2.3 Evolusi Sistem&lt;/strong&gt;: Butuh evaluasi yang ikut beradaptasi.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.1.3 Metodologi Evaluasi untuk Sistem Adaptif
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.1.3.1 Continuous Evaluation&lt;/strong&gt;: Evaluasi berjalan non-stop, seperti monitor detak jantung.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.1.3.2 Real-time Monitoring&lt;/strong&gt;: Gunakan dashboard untuk lihat performa saat ini.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.1.3.3 Feedback Loops&lt;/strong&gt;: Sistem koreksi diri dari hasil evaluasi.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.1.3.4 Self-healing Systems Evaluation&lt;/strong&gt;: Evaluasi sistem yang otomatis fix masalah.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Contoh sederhana: Aplikasi navigasi seperti Waze – evaluasi continuous cek apakah rute baru lebih cepat 10% dari sebelumnya.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwytvsglj9dkb47udq3sy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwytvsglj9dkb47udq3sy.png" alt=" " width="696" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Simplified diagram depicting forests as complex adaptive systems ... – gambarin feedback loop adaptif seperti ekosistem hutan yang menyesuaikan!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvy5bqsotozpk5ls7iwkb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvy5bqsotozpk5ls7iwkb.png" alt=" " width="251" height="201"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;How complex adaptive systems change – diagram loop yang dinamis dan engaging!&lt;/p&gt;

&lt;h4&gt;
  
  
  10.1.4 Studi Kasus: Evaluasi Sistem Adaptif
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.1.4.1 Evaluasi Sistem Rekomendasi Adaptif&lt;/strong&gt;: Amazon – adaptasi real-time tingkatkan konversi 35%.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.1.4.2 Evaluasi Sistem Keamanan Adaptif&lt;/strong&gt;: Intrusion detection yang belajar ancaman baru.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.1.4.3 Pembelajaran dari Implementasi&lt;/strong&gt;: Pelajaran: Integrasikan ML untuk prediksi adaptasi.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10.2 Penggunaan AI dan Machine Learning dalam Evaluasi Sistem
&lt;/h3&gt;

&lt;p&gt;AI/ML ubah evaluasi jadi "prediktif" – bukan cuma ukur, tapi ramal masalah!&lt;/p&gt;

&lt;h4&gt;
  
  
  10.2.1 Aplikasi AI/ML untuk Evaluasi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.2.1.1 Prediksi Kinerja Sistem&lt;/strong&gt;: ML ramal downtime server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.1.2 Deteksi Anomali Otomatis&lt;/strong&gt;: Spot lonjakan traffic jahat.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.1.3 Klasifikasi Kualitas Sistem&lt;/strong&gt;: Label sistem "baik/cukup/buruk" dari metrik.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.1.4 Natural Language Processing untuk Analisis Feedback&lt;/strong&gt;: Sentiment dari review pengguna.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Contoh: Sistem HR pakai NLP evaluasi feedback karyawan – deteksi isu moral sebelum jadi masalah besar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlo0w1hvq5oa0aw1ll4n.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhlo0w1hvq5oa0aw1ll4n.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Master AI Anomaly Detection: The Definitive Guide – flowchart deteksi anomali yang detail!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fii3x4gqqf18xdt06fvv6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fii3x4gqqf18xdt06fvv6.png" alt=" " width="560" height="315"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cloud Computing And Ai Powered Anomaly Detection – guide visual yang komprehensif!&lt;/p&gt;

&lt;h4&gt;
  
  
  10.2.2 Teknik Machine Learning untuk Evaluasi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.2.2.1 Supervised Learning untuk Evaluasi&lt;/strong&gt;: Regresi prediksi waktu load.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.2.2 Unsupervised Learning untuk Evaluasi&lt;/strong&gt;: Clustering error log.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.2.3 Reinforcement Learning untuk Evaluasi&lt;/strong&gt;: Optimasi parameter sistem.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.2.4 Deep Learning Applications&lt;/strong&gt;: CNN analisis performa image-based.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.2.3 Implementasi ML dalam Evaluasi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.2.3.1 Data Preparation untuk ML&lt;/strong&gt;: Clean log data.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.3.2 Model Training dan Validation&lt;/strong&gt;: Pakai cross-validation.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.3.3 Deployment dan Monitoring&lt;/strong&gt;: Di Kubernetes dengan MLflow.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.3.4 Model Drift Detection&lt;/strong&gt;: Deteksi kalau model ML evaluasi outdated.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.2.4 Automated Evaluation Systems
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.2.4.1 AutoML untuk Evaluasi&lt;/strong&gt;: Google AutoML buat model evaluasi otomatis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.4.2 Intelligent Monitoring Systems&lt;/strong&gt;: Splunk dengan AI.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.4.3 Predictive Maintenance&lt;/strong&gt;: Ramal kegagalan hardware.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.2.5 Studi Kasus: ML dalam Evaluasi Sistem
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.2.5.1 Evaluasi Sistem dengan Predictive Analytics&lt;/strong&gt;: Bank ramal fraud.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.5.2 Evaluasi Otomatis dengan ML&lt;/strong&gt;: Grading tugas mahasiswa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.2.5.3 Pembelajaran dari Implementasi&lt;/strong&gt;: Kasus predictive maintenance di manufaktur.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10.3 Integrasi Framework DevOps dan SRE dalam Evaluasi
&lt;/h3&gt;

&lt;p&gt;DevOps &amp;amp; SRE bikin evaluasi "agile dan reliable" seperti tim olimpiade yang latihan terus.&lt;/p&gt;

&lt;h4&gt;
  
  
  10.3.1 Konsep DevOps dan Site Reliability Engineering (SRE)
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.3.1.1 Prinsip DevOps&lt;/strong&gt;: Collaboration, automation, continuous delivery.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.3.1.2 SRE Practices&lt;/strong&gt;: SLO (Service Level Objectives), error budgets.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.3.1.3 Peran Evaluasi dalam DevOps/SRE&lt;/strong&gt;: Integrasi monitoring di pipeline.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.3.2 Praktik Evaluasi dalam DevOps
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.3.2.1 Automated Testing&lt;/strong&gt;: Unit/integration di CI/CD.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.3.2.2 Continuous Monitoring&lt;/strong&gt;: Alerting untuk metrik kritis.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.3.2.3 Feedback Loops&lt;/strong&gt;: User metrics feed back ke dev team.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.3.2.4 Chaos Engineering&lt;/strong&gt;: Test kegagalan sengaja untuk evaluasi resilience.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Contoh: Amazon DevOps – evaluasi continuous kurangi downtime 75%.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F13l4r5d9q4gxijh1rfgs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F13l4r5d9q4gxijh1rfgs.png" alt=" " width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What is Devops lifecycle? 8 phases of devops – diagram infinity loop klasik!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm12oecrq323qc75xnfw3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm12oecrq323qc75xnfw3.png" alt=" " width="768" height="576"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Blue DevOps Infinity Loop Diagram – visual optimasi proses!&lt;/p&gt;

&lt;h4&gt;
  
  
  10.3.3 Tools untuk Evaluasi dalam DevOps
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.3.3.1 Monitoring Tools (Prometheus, Grafana)&lt;/strong&gt;: Dashboard metrik real-time.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.3.3.2 Testing Automation Tools&lt;/strong&gt;: Selenium, JUnit.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.3.3.3 Analytics Platforms&lt;/strong&gt;: ELK Stack.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.3.3.4 Observability Tools&lt;/strong&gt;: Jaeger untuk tracing.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.3.4 Studi Kasus: Integrasi DevOps dalam Evaluasi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.3.4.1 Implementasi Continuous Evaluation&lt;/strong&gt;: Google SRE model.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.3.4.2 Evaluasi dalam CI/CD Pipeline&lt;/strong&gt;: GitLab pipelines.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.3.4.3 Pembelajaran dari Implementasi&lt;/strong&gt;: Agility tingkatkan time-to-market.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10.4 Tren Teknologi dalam Evaluasi Sistem
&lt;/h3&gt;

&lt;p&gt;Teknologi baru ubah evaluasi jadi "sci-fi"!&lt;/p&gt;

&lt;h4&gt;
  
  
  10.4.1 Evaluasi Sistem Berbasis Cloud
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.4.1.1 Tantangan Evaluasi Cloud Systems&lt;/strong&gt;: Variabilitas skalabilitas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.1.2 Metodologi Evaluasi Cloud&lt;/strong&gt;: Benchmark multi-provider.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.1.3 Tools untuk Evaluasi Cloud&lt;/strong&gt;: AWS CloudWatch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.1.4 Multi-cloud Evaluation Strategies&lt;/strong&gt;: Hybrid monitoring tools.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.4.2 Evaluasi Sistem Terdistribusi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.4.2.1 Tantangan&lt;/strong&gt;: Konsistensi data antar node.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.2.2 Metodologi&lt;/strong&gt;: Distributed logging.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.2.3 Tools&lt;/strong&gt;: Apache Kafka.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.2.4 Microservices Evaluation&lt;/strong&gt;: Istio service mesh.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.4.3 Evaluasi Sistem Real-time
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.4.3.1 Tantangan&lt;/strong&gt;: Low latency requirement.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.3.2 Metodologi&lt;/strong&gt;: Time-series metrics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.3.3 Tools&lt;/strong&gt;: InfluxDB.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.3.4 Stream Processing Evaluation&lt;/strong&gt;: Apache Flink.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.4.4 Evaluasi Emerging Technologies
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.4.4.1 Blockchain Systems Evaluation&lt;/strong&gt;: TPS (transactions per second).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.4.2 Quantum Computing Systems Evaluation&lt;/strong&gt;: Qubit error rates.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.4.3 Edge Computing Evaluation&lt;/strong&gt;: Latency vs cloud.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.4.4 5G Network Systems Evaluation&lt;/strong&gt;: Bandwidth throughput.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Contoh: Evaluasi blockchain untuk fintech – metrik security vs speed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncmsc7egliym2gcu02i0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fncmsc7egliym2gcu02i0.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;4 Trends in Emerging Tech That Will Transform Value Creation – infographic tren 2025!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltnwouv4ommvqzpzwfux.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fltnwouv4ommvqzpzwfux.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gartner Hype Cycle™ for Emerging Technologies – prediksi teknologi masa depan!&lt;/p&gt;

&lt;h4&gt;
  
  
  10.4.5 Studi Kasus: Evaluasi Sistem dengan Teknologi Terkini
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.4.5.1 Evaluasi Sistem Blockchain&lt;/strong&gt;: Supply chain transparency.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.5.2 Evaluasi Quantum Computing&lt;/strong&gt;: Simulasi molekul.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.4.5.3 Pembelajaran dari Implementasi&lt;/strong&gt;: Hybrid cloud-quantum approach.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  10.5 Sustainable IT dan Green Computing Evaluation
&lt;/h3&gt;

&lt;p&gt;Evaluasi masa depan harus ukur "jejak karbon" sistem!&lt;/p&gt;

&lt;h4&gt;
  
  
  10.5.1 Konsep Sustainable IT
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.5.1.1 Environmental Impact of IT Systems&lt;/strong&gt;: Data center konsumsi listrik seperti kota.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.5.1.2 Carbon Footprint Measurement&lt;/strong&gt;: Hitung emisi CO2 dari server.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.5.1.3 Green IT Principles&lt;/strong&gt;: Efisiensi energi, recycle hardware.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.5.2 Evaluasi Green Computing
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.5.2.1 Energy Efficiency Metrics&lt;/strong&gt;: PUE (Power Usage Effectiveness).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.5.2.2 E-waste Management Evaluation&lt;/strong&gt;: Recycling metrics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.5.2.3 Sustainable Software Engineering&lt;/strong&gt;: Code hemat energi.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.5.3 ESG (Environmental, Social, Governance) Compliance
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.5.3.1 ESG Reporting for IT Systems&lt;/strong&gt;: Annual green report.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.5.3.2 Sustainability KPIs&lt;/strong&gt;: Carbon reduction target.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.5.3.3 Green IT Certifications&lt;/strong&gt;: LEED for data centers.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.5.4 Studi Kasus: Sustainable IT Evaluation
&lt;/h4&gt;

&lt;p&gt;Kasus Microsoft Azure – evaluasi zero-carbon data center.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3pfjtmp9r175to999mje.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3pfjtmp9r175to999mje.png" alt=" " width="800" height="404"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Green computing / green IT vector illustration – konsep hijau dengan ikon sustainable!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpsvi5bhdxi50pbjoaf96.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpsvi5bhdxi50pbjoaf96.png" alt=" " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Green Computing: Paving the Way for A Sustainable Tech Future – ilustrasi praktik hijau!&lt;/p&gt;

&lt;h3&gt;
  
  
  10.6 Masa Depan Profesi Evaluasi Sistem
&lt;/h3&gt;

&lt;p&gt;Evaluator masa depan adalah "strategist AI"!&lt;/p&gt;

&lt;h4&gt;
  
  
  10.6.1 Evolusi Peran Evaluator
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.6.1.1 Dari Teknis ke Strategis&lt;/strong&gt;: Advisor C-level.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.6.1.2 Integrasi dengan Disiplin Lain&lt;/strong&gt;: Kolaborasi dengan ethicist.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.6.1.3 Keterampilan Masa Depan&lt;/strong&gt;: Quantum literacy, AI ethics.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.6.1.4 New Job Roles dalam Evaluasi&lt;/strong&gt;: Sustainability Evaluator.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.6.2 Pendidikan dan Pelatihan Evaluasi Sistem
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.6.2.1 Kurikulum Evaluasi Sistem&lt;/strong&gt;: Sertakan VR dan AI sim.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.6.2.2 Metode Pembelajaran Inovatif&lt;/strong&gt;: Gamification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.6.2.3 Sertifikasi dan Akreditasi&lt;/strong&gt;: Certified AI Evaluator.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.6.2.4 Lifelong Learning Pathways&lt;/strong&gt;: MOOCs seperti Coursera.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.6.3 Komunitas dan Kolaborasi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.6.3.1 Jaringan Profesional&lt;/strong&gt;: IEEE groups.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.6.3.2 Kolaborasi Internasional&lt;/strong&gt;: Konferensi ICIS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.6.3.3 Open Source dan Pengetahuan Bersama&lt;/strong&gt;: GitHub evaluasi tools.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.6.3.4 Research and Innovation Networks&lt;/strong&gt;: ResearchGate.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  10.6.4 Visi Masa Depan Evaluasi Sistem
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;10.6.4.1 Prediksi untuk 10 Tahun Mendatang&lt;/strong&gt;: Evaluasi metaverse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.6.4.2 Dampak pada Industri dan Masyarakat&lt;/strong&gt;: Lebih inklusif.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.6.4.3 Etika dan Tanggung Jawab Sosial&lt;/strong&gt;: Fokus fairness.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;10.6.4.4 Preparing for the Future&lt;/strong&gt;: Upskilling continuous.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8vz4pj07gtykm5fl65lf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8vz4pj07gtykm5fl65lf.png" alt=" " width="800" height="581"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Competencies for post-normal evaluation – diagram skill vital masa depan!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F78he0deytzlj2s4ta0l9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F78he0deytzlj2s4ta0l9.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What is Kirkpatrick's Training Evaluation Model? – model evolusi skill!&lt;/p&gt;

&lt;h3&gt;
  
  
  10.7 Rangkuman dan Refleksi
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;10.7.1 Rangkuman bab&lt;/strong&gt;: Tren masa depan: Adaptif, AI-driven, DevOps-integrated, tech-emerging, sustainable, evolusi profesi.&lt;br&gt;
&lt;strong&gt;10.7.2 Pertanyaan refleksi&lt;/strong&gt;: Bagaimana kamu siapkan diri untuk evaluasi quantum?&lt;br&gt;
&lt;strong&gt;10.7.3 Tugas: Visi masa depan evaluasi sistem&lt;/strong&gt;: Buat roadmap 10 tahun untuk karirmu.&lt;/p&gt;

&lt;p&gt;Selamat berefleksi, teman-teman! Tren masa depan ini peluang emas – dengan pemahaman ini, kamu siap jadi leader inovasi SI. Terus kolaborasi dan adaptasi! 🌟&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Akhir Buku: Implementasi dan Case Study Lanjutan&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;— Ahmad Asroni, Praktisi &amp;amp; Akademisi Sistem Informasi&lt;br&gt;&lt;br&gt;
Fokus: Tren Masa Depan, Etika, dan Inovasi Bertanggung Jawab&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Etika dan Tantangan Evaluasi Sistem</title>
      <dc:creator>ahmadasroni38</dc:creator>
      <pubDate>Mon, 22 Dec 2025 09:35:35 +0000</pubDate>
      <link>https://forem.com/ahmadasroni38/etika-dan-tantangan-evaluasi-sistem-1l71</link>
      <guid>https://forem.com/ahmadasroni38/etika-dan-tantangan-evaluasi-sistem-1l71</guid>
      <description>&lt;p&gt;Halo, rekan-rekan praktisi, akademisi, dosen, dan mahasiswa yang sedang mendalami Sistem Informasi!&lt;br&gt;&lt;br&gt;
Selamat datang di bab paling "manusiawi" dari buku ini: &lt;strong&gt;Etika dan Tantangan Evaluasi&lt;/strong&gt;. Evaluasi sistem bukan hanya soal angka dan metrik – tapi juga soal tanggung jawab moral, keadilan, dan dampak sosial. Sebagai praktisi yang telah memimpin evaluasi di proyek besar dan akademisi yang mengajar etika SI, saya selalu bilang: "Sistem hebat tanpa etika bisa jadi bencana."&lt;/p&gt;

&lt;p&gt;Bab ini dirancang mudah dipahami, dengan contoh sederhana sehari-hari, analogi seru, dan ilustrasi visual keren agar kamu cepat paham dan enjoy belajarnya. Yuk kita bahas etika yang bikin evaluasi tidak hanya akurat, tapi juga bertanggung jawab! 😊&lt;/p&gt;

&lt;h3&gt;
  
  
  9.1 Bias Data dalam Evaluasi Sistem
&lt;/h3&gt;

&lt;p&gt;Bias data adalah "kesalahan sistematis" yang bikin evaluasi tidak adil – seperti timbangan yang miring.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzy5l7wqj9ehh0h13nqt4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzy5l7wqj9ehh0h13nqt4.png" alt=" " width="612" height="326"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ilustrasi statistical bias ini nunjukin gimana data biased bikin hasil analisis melenceng – mirip timbangan rusak!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F03ne8rmm24jw3pteq8eo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F03ne8rmm24jw3pteq8eo.png" alt=" " width="800" height="452"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram cycle bias ini gambarin gimana bias masuk dari data training sampai output AI.&lt;/p&gt;

&lt;h4&gt;
  
  
  9.1.1 Jenis-jenis Bias Data
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Sampling Bias&lt;/strong&gt;: Data sampel tidak representatif. Contoh: Evaluasi sistem rekrutmen hanya pakai data dari kota besar → Diskriminasi kandidat dari desa.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Confirmation Bias&lt;/strong&gt;: Evaluator hanya cari bukti yang dukung hipotesisnya. Contoh: "Sistem ini bagus!" → Abaikan feedback negatif.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Anchoring Bias&lt;/strong&gt;: Terpaku pada informasi pertama. Contoh: Nilai sistem tinggi karena demo awal bagus, abaikan performa jangka panjang.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Availability Bias&lt;/strong&gt;: Terpengaruh data yang mudah diingat. Contoh: Fokus pada kasus gagal spektakuler, abaikan ribuan sukses.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Algorithmic Bias&lt;/strong&gt;: Algoritma memperkuat bias data. Contoh: Sistem kredit AI tolak pinjaman perempuan karena data historis didominasi laki-laki.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.1.2 Deteksi Bias dalam Evaluasi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Teknik: Bandingkan performa antar kelompok (gender, usia, lokasi).&lt;/li&gt;
&lt;li&gt;Alat: Fairlearn (Python), AIF360 (IBM).&lt;/li&gt;
&lt;li&gt;Validasi: Cross-check dengan data eksternal.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.1.3 Mitigasi Bias Data
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Diversifikasi data, randomisasi, bias correction (reweighting).&lt;/li&gt;
&lt;li&gt;Desain evaluasi adil: Pakai multiple evaluator independen.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.1.4 Studi Kasus: Bias dalam Evaluasi Sistem
&lt;/h4&gt;

&lt;p&gt;Kasus nyata: Sistem pengenalan wajah yang akurat 99% untuk kulit terang, tapi hanya 70% untuk kulit gelap → Diskriminasi rasial.&lt;/p&gt;

&lt;h3&gt;
  
  
  9.2 Privasi Informasi dalam Evaluasi
&lt;/h3&gt;

&lt;p&gt;Privasi adalah hak dasar – jangan sampai evaluasi malah bocorkan data sensitif!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fym66l0zsmfixvbaxnhvh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fym66l0zsmfixvbaxnhvh.png" alt=" " width="800" height="416"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Infografis GDPR principles ini jelasin 6 prinsip utama privasi data – mudah diingat!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fakp9ydsxor21waxx56i3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fakp9ydsxor21waxx56i3.png" alt=" " width="390" height="280"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ilustrasi isometric GDPR ini gambarin proteksi data secara visual.&lt;/p&gt;

&lt;h4&gt;
  
  
  9.2.1 Konsep Privasi Data
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Definisi: Kontrol individu atas data pribadinya.&lt;/li&gt;
&lt;li&gt;Regulasi: GDPR (Eropa), PDPA (Indonesia), CCPA (California).&lt;/li&gt;
&lt;li&gt;Hak: Akses, koreksi, hapus data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.2.2 Perlindungan Data dalam Evaluasi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Anonimisasi (hapus identifier), pseudonimisasi (ganti nama dengan kode).&lt;/li&gt;
&lt;li&gt;Enkripsi, access control (role-based).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.2.3 Etika Pengumpulan Data
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Informed consent: Jelaskan tujuan evaluasi.&lt;/li&gt;
&lt;li&gt;Minimisasi: Kumpul data secukupnya saja.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.2.4 Studi Kasus: Pelanggaran Privasi dalam Evaluasi
&lt;/h4&gt;

&lt;p&gt;Kasus Cambridge Analytica: Evaluasi data Facebook tanpa consent → Manipulasi pemilu.&lt;/p&gt;

&lt;h3&gt;
  
  
  9.3 Isu Etika dalam Pengambilan Keputusan
&lt;/h3&gt;

&lt;p&gt;Evaluasi sering hadapi dilema: Akurat vs etis?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cxn3opltf8sjukj7i1x.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2cxn3opltf8sjukj7i1x.png" alt=" " width="800" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Trolley problem self-driving car ini klasik dilema etika – pilih mana?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh1bz9jpy4t97skwqebr0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fh1bz9jpy4t97skwqebr0.png" alt=" " width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Storyboard ethical dilemmas ini gambarin contoh dari literatur – relatable!&lt;/p&gt;

&lt;h4&gt;
  
  
  9.3.1 Dilema Etika dalam Evaluasi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Konflik kepentingan: Evaluator dibayar sponsor → Tekan hasil positif.&lt;/li&gt;
&lt;li&gt;Transparansi vs kerahasiaan: Publikasi hasil vs lindungi data rahasia.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.3.2 Prinsip Etika Evaluasi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Beneficence (bermanfaat), Non-maleficence (jangan merugikan), Justice (adil), Autonomy (hormati pilihan).&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.3.3 Kerangka Kerja Pengambilan Keputusan Etis
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Model: Identify issue → Options → Evaluate → Decide → Document.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.3.4 Studi Kasus: Keputusan Etis dalam Evaluasi
&lt;/h4&gt;

&lt;p&gt;Kasus: Evaluasi sistem surveillance – Efisien tapi langgar privasi?&lt;/p&gt;

&lt;h3&gt;
  
  
  9.4 Fairness dan Inclusivity dalam Evaluasi
&lt;/h3&gt;

&lt;p&gt;Evaluasi harus inklusif – jangan diskriminasi!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7kr3wfgrs4o6u6r9qg4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl7kr3wfgrs4o6u6r9qg4.png" alt=" " width="800" height="490"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Cycle bias and fairness ini gambarin gimana fairness jadi bagian integral AI.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupkzdy5ipcbmpxjc9jzx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupkzdy5ipcbmpxjc9jzx.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram understanding bias ini jelasin sumber bias dan fairness.&lt;/p&gt;

&lt;h4&gt;
  
  
  9.4.1 Evaluasi yang Inklusif
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Universal design: Aksesibel untuk disabilitas.&lt;/li&gt;
&lt;li&gt;Cultural sensitivity: Tes dengan pengguna beragam budaya.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.4.2 Fairness Metrics
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Demographic Parity: Hasil sama antar kelompok.&lt;/li&gt;
&lt;li&gt;Equal Opportunity: Kesempatan benar sama.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.4.3 Addressing Discrimination in Systems
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Identifikasi pattern diskriminatif → Remediasi dengan re-training.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  9.5 Tantangan Implementasi Evaluasi
&lt;/h3&gt;

&lt;p&gt;Evaluasi nggak selalu mulus – ada rintangan!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgpezzjh6s16ctwnqhw1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkgpezzjh6s16ctwnqhw1.png" alt=" " width="288" height="175"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram challenges in prognostics ini gambarin obstacles teknis.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbtkxnfnw8s7k9uapqjcg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbtkxnfnw8s7k9uapqjcg.png" alt=" " width="765" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Obstacles in adaptive management ini visualisasikan hambatan.&lt;/p&gt;

&lt;h4&gt;
  
  
  9.5.1 Tantangan Teknis
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Kompleksitas sistem, keterbatasan data.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.5.2 Tantangan Organisasi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Resistensi perubahan, budget.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.5.3 Tantangan Sosial
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Trust building dengan pengguna.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.5.4 Strategi Mengatasi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Change management, stakeholder engagement.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  9.6 Kode Etik Profesional Evaluasi Sistem
&lt;/h3&gt;

&lt;p&gt;Evaluator harus punya integritas tinggi.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn9jqbqbot336cdo8ddg8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn9jqbqbot336cdo8ddg8.png" alt=" " width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ilustrasi purpose of code of ethics ini gambarin prinsip-prinsip utama.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp992iekwuwny0ns4ulvw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fp992iekwuwny0ns4ulvw.png" alt=" " width="720" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Professional ethics template ini visual dan mudah dipahami.&lt;/p&gt;

&lt;h4&gt;
  
  
  9.6.1 Standar Profesional
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Kompetensi, integritas, tanggung jawab sosial.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.6.2 Praktik Etis
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Objektivitas, akuntabilitas.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.6.3 Pengembangan Profesi
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;Sertifikasi, komunitas.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  9.6.4 Studi Kasus: Etika Profesional dalam Aksi
&lt;/h4&gt;

&lt;p&gt;Kasus whistleblower yang laporkan bias di sistem.&lt;/p&gt;

&lt;h3&gt;
  
  
  9.7 Rangkuman dan Latihan
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Rangkuman&lt;/strong&gt;: Etika evaluasi adalah kompas moral – bias, privasi, fairness, dan integritas harus jadi prioritas.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pertanyaan Diskusi&lt;/strong&gt;:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Apa dilema etika terbesar di evaluasi AI hari ini?&lt;/li&gt;
&lt;li&gt;Bagaimana mitigasi bias di proyekmu?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Case Study&lt;/strong&gt;: Analisis kasus COMPAS (sistem prediksi kriminalitas yang biased rasial).&lt;/p&gt;

&lt;p&gt;Selamat berefleksi, teman-teman! Etika bukan beban, tapi fondasi sistem informasi yang bertanggung jawab. Terus praktik etis – dunia butuh evaluator seperti kalian! ⚖️✨&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>datascience</category>
      <category>discuss</category>
    </item>
    <item>
      <title>Analisis Kualitas dan Keamanan Sistem Informasi</title>
      <dc:creator>ahmadasroni38</dc:creator>
      <pubDate>Fri, 19 Dec 2025 08:05:14 +0000</pubDate>
      <link>https://forem.com/ahmadasroni38/analisis-kualitas-dan-keamanan-sistem-informasi-435g</link>
      <guid>https://forem.com/ahmadasroni38/analisis-kualitas-dan-keamanan-sistem-informasi-435g</guid>
      <description>&lt;p&gt;Halo, rekan-rekan praktisi, akademisi, dosen, dan mahasiswa yang sedang mendalami Sistem Informasi!&lt;br&gt;&lt;br&gt;
Selamat datang di bab yang menjadi pondasi kuat dalam membangun sistem informasi berkualitas tinggi: &lt;strong&gt;Analisis Kualitas dan Keamanan&lt;/strong&gt;. Sebagai praktisi yang telah mengimplementasikan puluhan proyek SI di perusahaan multinasional dan sebagai akademisi yang mengajar ribuan mahasiswa, saya selalu menekankan bahwa sistem informasi yang hebat bukan hanya yang "berfungsi", tapi yang &lt;strong&gt;handal, aman, dan memberikan nilai bisnis nyata&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Bayangkan kamu membangun aplikasi banking online. Kalau kualitas buruk (bug banyak, lambat), pengguna kabur. Kalau keamanan lemah (mudah dihack), perusahaan rugi miliaran. Analisis kualitas dan keamanan adalah "perisai" yang melindungi investasi kita. Bab ini dirancang mudah dipahami, dengan contoh sederhana sehari-hari, analogi menyenangkan, dan ilustrasi visual keren agar kamu cepat grasp dan langsung bisa terapkan di proyek nyata.&lt;/p&gt;

&lt;p&gt;Yuk kita eksplor bareng – praktis untuk industri, mendalam untuk penelitian! 😊&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Analisis Kualitas Sistem Informasi: Membuat Sistem yang Handal dan Efisien
&lt;/h3&gt;

&lt;p&gt;Kualitas sistem informasi diukur dari seberapa baik sistem memenuhi standar ISO 25010: Functionality, Reliability, Usability, Efficiency, Maintainability, dan Portability.&lt;/p&gt;

&lt;p&gt;Analogi: Kayak mobil. Bukan hanya bisa jalan (functionality), tapi aman nyetir (reliability), nyaman (usability), irit bensin (efficiency), dan mudah servis (maintainability).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F77yjnuaqc5yp8trmtfvw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F77yjnuaqc5yp8trmtfvw.png" alt=" " width="800" height="571"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram Software Quality Assurance ini nunjukin elemen-elemen utama: planning, testing, review – cycle berkelanjutan untuk kualitas tinggi!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fby1m7w3dpsl2qqzp0hme.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fby1m7w3dpsl2qqzp0hme.png" alt=" " width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Versi lain yang fokus pada proses SQA – dari review hingga auditing.&lt;/p&gt;

&lt;h4&gt;
  
  
  Contoh Sederhana 1: Testing Pyramid untuk Kualitas Kode
&lt;/h4&gt;

&lt;p&gt;Di proyek aplikasi inventory, kita pakai &lt;strong&gt;Testing Pyramid&lt;/strong&gt;: Banyak unit test (dasar), sedikit integration test, lebih sedikit lagi UI test.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq1wpy9dbrdefzuh1eie7.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq1wpy9dbrdefzuh1eie7.png" alt=" " width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Testing Pyramid ini ikonik: Unit test cepat &amp;amp; murah, UI test lambat tapi cover user experience – balance yang pas!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnm2hw2xx12up21jxh6u8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnm2hw2xx12up21jxh6u8.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Versi modern dengan trophy shape – lebih realistis untuk agile.&lt;/p&gt;

&lt;p&gt;Manfaat: Deteksi bug dini, hemat biaya perbaikan (bug di production bisa 100x lebih mahal).&lt;/p&gt;

&lt;h4&gt;
  
  
  Contoh Sederhana 2: Usability Testing
&lt;/h4&gt;

&lt;p&gt;Sistem absensi karyawan: Test dengan 10 pengguna nyata. Mereka kesulitan cari tombol "clock out"? Skor SUS (System Usability Scale) rendah → Redesign UI.&lt;/p&gt;

&lt;p&gt;Hasil: Kepuasan naik dari 60% ke 90%.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Analisis Keamanan Sistem Informasi: Melindungi dari Ancaman
&lt;/h3&gt;

&lt;p&gt;Keamanan berdasarkan &lt;strong&gt;CIA Triad&lt;/strong&gt;: Confidentiality (rahasia), Integrity (integritas data), Availability (selalu tersedia).&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdteon5ykpwbitjxqoei.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmdteon5ykpwbitjxqoei.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;CIA Triad illustration ini klasik: Tiga pilar keamanan informasi – kalau satu rubuh, sistem rentan!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9oybbofgdium24ku213t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9oybbofgdium24ku213t.png" alt=" " width="800" height="509"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Versi artistik dengan ikon lock, shield, clock – mudah diingat.&lt;/p&gt;

&lt;p&gt;Pendekatan &lt;strong&gt;Defense in Depth&lt;/strong&gt; (lapisan bawang): Physical, Network, Host, Application, Data.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4b31uo3n28e7p6g1wfwu.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4b31uo3n28e7p6g1wfwu.png" alt=" " width="800" height="613"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Onion Security Model ini gambarin lapisan-lapisan proteksi – hacker harus tembus semua!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4u0k20e3qcrlazkmdztc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4u0k20e3qcrlazkmdztc.png" alt=" " width="297" height="170"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Versi layered seperti bawang – semakin dalam, semakin kritis.&lt;/p&gt;

&lt;h4&gt;
  
  
  Contoh Sederhana 1: OWASP Top 10 di Aplikasi Web
&lt;/h4&gt;

&lt;p&gt;Di proyek e-commerce, ancaman teratas: Injection, Broken Authentication, Sensitive Data Exposure.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhjpxi9er8ieyxskn4qn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqhjpxi9er8ieyxskn4qn.png" alt=" " width="800" height="516"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Chart OWASP Top 10 ini update – prioritas risiko di web app!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fepoo0kcgemrfahr2bp3v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fepoo0kcgemrfahr2bp3v.png" alt=" " width="800" height="532"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Versi 2025 guide – fokus pada broken access control dll.&lt;/p&gt;

&lt;p&gt;Mitigasi: Pakai prepared statements, HTTPS, authentication modern (OAuth).&lt;/p&gt;

&lt;h4&gt;
  
  
  Contoh Sederhana 2: Risk Matrix untuk Penilaian Ancaman
&lt;/h4&gt;

&lt;p&gt;Identifikasi risiko: SQL Injection (likelihood high, impact high) → Prioritas utama.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqct8j898cc44uvp3pm0w.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fqct8j898cc44uvp3pm0w.png" alt=" " width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Risk Matrix ini 5x5 grid: Likelihood vs Impact – warna merah tinggi risiko!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39ioi00ycaog6iozluoz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39ioi00ycaog6iozluoz.png" alt=" " width="800" height="421"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Versi IT risk register – praktis untuk dokumentasi.&lt;/p&gt;

&lt;h3&gt;
  
  
  Integrasi Kualitas &amp;amp; Keamanan: Pendekatan Holistik
&lt;/h3&gt;

&lt;p&gt;Kualitas dan keamanan saling terkait – sistem berkualitas tinggi otomatis lebih aman (Secure by Design).&lt;/p&gt;

&lt;p&gt;Di praktik saya: Selalu integrasikan Security Testing di Testing Pyramid.&lt;/p&gt;

&lt;h3&gt;
  
  
  Latihan Praktikum yang Menyenangkan! 💪
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Analisis kualitas aplikasi favoritmu pakai ISO 25010.&lt;/li&gt;
&lt;li&gt;Buat risk matrix untuk proyek SI sederhana (misal sistem presensi).&lt;/li&gt;
&lt;li&gt;Diskusi: Bagaimana CIA Triad diterapkan di cloud computing?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selamat bereksplorasi, rekan-rekan! Analisis kualitas dan keamanan adalah seni membangun sistem informasi yang tidak hanya berfungsi, tapi juga &lt;strong&gt;trusted dan sustainable&lt;/strong&gt;. Dengan pemahaman ini, kamu siap menghadapi tantangan industri nyata.&lt;/p&gt;

&lt;p&gt;— Ahmad Asroni, Praktisi &amp;amp; Akademisi Sistem Informasi&lt;br&gt;&lt;br&gt;
Spesialisasi: Evaluasi, Keamanan, dan Transformasi Digital&lt;/p&gt;

</description>
      <category>learning</category>
      <category>security</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Praktikum Keamanan Web: Open Redirect Vulnerability 🔀🎣</title>
      <dc:creator>ahmadasroni38</dc:creator>
      <pubDate>Thu, 18 Dec 2025 08:36:19 +0000</pubDate>
      <link>https://forem.com/ahmadasroni38/praktikum-keamanan-web-open-redirect-vulnerability-j5e</link>
      <guid>https://forem.com/ahmadasroni38/praktikum-keamanan-web-open-redirect-vulnerability-j5e</guid>
      <description>&lt;p&gt;Halo, teman-teman mahasiswa! Selamat datang di praktikum licik tapi seru tentang &lt;strong&gt;Open Redirect Vulnerability&lt;/strong&gt; – celah yang kayak "pintu jebakan" di website! Bayangkan setelah login sukses, aplikasi redirect kamu ke halaman dashboard. Tapi kalau developer lupa validasi, hacker bisa suntikkan URL jahat, dan kamu langsung dikirim ke situs phishing palsu yang mirip banget. Kamu masukin password lagi → Akun jebol! Ini sering dipakai buat phishing karena user percaya redirect dari situs resmi. &lt;/p&gt;

&lt;p&gt;Open redirect nggak langsung curi data, tapi bikin phishing jauh lebih kredibel. Yuk kita bahas santai, dengan contoh gampang di Laravel/PHP, dan ilustrasi keren biar langsung ngerti!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fudlhqd0dswn9qxlakkkn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fudlhqd0dswn9qxlakkkn.png" alt=" " width="797" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kartun "cat-phishing" ini lucu tapi nunjukin gimana open redirect dipakai buat jebak user – hacker senyum lebar! 😂&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1svqci1i6v8bseap23t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb1svqci1i6v8bseap23t.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gambar cartoon hacker ini gambarin serangan phishing lewat open redirect – user tergoda!&lt;/p&gt;

&lt;h3&gt;
  
  
  Apa Itu Open Redirect? 🤔🔀
&lt;/h3&gt;

&lt;p&gt;Open redirect terjadi saat aplikasi redirect user ke URL yang dikontrol dari input (parameter GET/POST) tanpa validasi ketat. Hacker manfaatin buat kirim user ke situs jahat, sambil keliatan dari situs asli.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9opx8mfhcjd2f97xoyp3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9opx8mfhcjd2f97xoyp3.png" alt=" " width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Attack flow phishing ini jelas banget: User klik link trusted → Redirect ke fake site → Masukin credential!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90ap2mu5xj9ic47zhd0e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F90ap2mu5xj9ic47zhd0e.png" alt=" " width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Scheme open redirection ini simpel tapi efektif – dari situs legit ke evil.com!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 1: Redirect Setelah Login (Klasik Banget!)
&lt;/h3&gt;

&lt;p&gt;Kode rentan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;login&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Request&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// ... login logic&lt;/span&gt;
    &lt;span class="nv"&gt;$redirect&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'return_url'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'/dashboard'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$redirect&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// Langsung redirect tanpa cek!&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;URL normal: /login?return_url=/dashboard → Aman.&lt;/p&gt;

&lt;p&gt;URL jahat: /login?return_url=&lt;a href="https://fakebank.com" rel="noopener noreferrer"&gt;https://fakebank.com&lt;/a&gt; → Setelah login, user dikirim ke phishing site!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 2: Logout atau OAuth Redirect
&lt;/h3&gt;

&lt;p&gt;/logout?next=&lt;a href="https://evil.com" rel="noopener noreferrer"&gt;https://evil.com&lt;/a&gt; → User logout, langsung ke situs jahat.&lt;/p&gt;

&lt;p&gt;Atau di OAuth: /oauth/callback?redirect_uri=&lt;a href="https://attacker.com" rel="noopener noreferrer"&gt;https://attacker.com&lt;/a&gt; → Curi code/token.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 3: Share Link atau Email Confirmation
&lt;/h3&gt;

&lt;p&gt;Link email: &lt;a href="https://situs.com/confirm?redirect=https://malicious.com" rel="noopener noreferrer"&gt;https://situs.com/confirm?redirect=https://malicious.com&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;User klik, confirm, terus redirect ke jahat – percaya banget karena dari email resmi!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdx5rljzjt39utpo46fop.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdx5rljzjt39utpo46fop.png" alt=" " width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram complete guide ini detail nunjukin gimana open redirect dipakai buat phishing &amp;amp; token theft!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3hdgmbm55czmfp8tk55.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fb3hdgmbm55czmfp8tk55.png" alt=" " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Understanding Open Redirection Attack ini gambarin proses lengkap – user nggak sadar!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 4: Kombinasi dengan XSS atau Open Redirect Chain
&lt;/h3&gt;

&lt;p&gt;Kalau ada XSS, hacker suntik link open redirect → Lebih berbahaya.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cara Mencegah Open Redirect (Mudah &amp;amp; Efektif!) 🛡️✨
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Whitelist URL yang Diizinkan&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;   &lt;span class="nv"&gt;$allowed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'/dashboard'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'/profile'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;url&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;previous&lt;/span&gt;&lt;span class="p"&gt;()];&lt;/span&gt;
   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nb"&gt;in_array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$redirect&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$allowed&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="nv"&gt;$redirect&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'/dashboard'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Cek Domain Sama (Relative Path Only)&lt;/strong&gt;&lt;br&gt;
Pakai &lt;code&gt;url()-&amp;gt;previous()&lt;/code&gt; atau force internal.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pakai Signed Redirect (Laravel punya!)&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;   &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;redirect&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;signedRoute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'dashboard'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// Otomatis validasi signature&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Validasi Strict&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nc"&gt;Str&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;startsWith&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nf"&gt;url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/'&lt;/span&gt;&lt;span class="p"&gt;)))&lt;/span&gt; &lt;span class="nf"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;400&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// Harus mulai dari domain sendiri&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ijyicbcwzvi1nwknqbb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7ijyicbcwzvi1nwknqbb.png" alt=" " width="800" height="654"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram prevention dari Microsoft ini nunjukin proses secure redirect – validasi dulu baru redirect!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ip3744pwgdal4tcjqx3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ip3744pwgdal4tcjqx3.png" alt=" " width="800" height="417"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Identifying Open Redirection ini bagian dari best practices – whitelist &amp;amp; check!&lt;/p&gt;

&lt;h3&gt;
  
  
  Latihan Seru Buat Kamu! 💪🔥
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Buat login dengan redirect rentan, test phishing link.&lt;/li&gt;
&lt;li&gt;Kirim link jahat ke temen (di lab ya!), lihat dia percaya nggak.&lt;/li&gt;
&lt;li&gt;Tambahin whitelist/signed route, test lagi (harusnya aman!).&lt;/li&gt;
&lt;li&gt;Coba di labs seperti PortSwigger Open Redirect.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selamat praktikum, guys! Open Redirect ini vulnerability "sederhana tapi jahat" yang bikin phishing sukses besar, tapi dengan validasi &amp;amp; whitelist, website kamu anti-phishing total 🎣🔒 Jadi developer yang bikin user aman dari jebakan! Ingat: &lt;strong&gt;Selalu validasi redirect URL!&lt;/strong&gt; Keep coding safely and have fun! 🎉🔀&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>security</category>
      <category>laravel</category>
      <category>php</category>
    </item>
    <item>
      <title>Praktikum Keamanan Web: Brute Force Attack &amp; Rate Limiting 🔑🚫</title>
      <dc:creator>ahmadasroni38</dc:creator>
      <pubDate>Thu, 18 Dec 2025 08:30:41 +0000</pubDate>
      <link>https://forem.com/ahmadasroni38/praktikum-keamanan-web-brute-force-attack-rate-limiting-5ejm</link>
      <guid>https://forem.com/ahmadasroni38/praktikum-keamanan-web-brute-force-attack-rate-limiting-5ejm</guid>
      <description>&lt;p&gt;Halo, teman-teman mahasiswa! Selamat datang di praktikum seru tentang &lt;strong&gt;Brute Force Attack&lt;/strong&gt; – serangan klasik yang kayak "coba-coba semua kunci sampai pintu kebuka"! Hacker pakai script otomatis buat tebak password ribuan kali per detik di form login. Kalau password lemah (misal "123456"), akun langsung jebol. Tapi tenang, kita punya senjata ampuh: &lt;strong&gt;Rate Limiting&lt;/strong&gt; – kayak satpam yang bilang "Cukup! Tunggu dulu kalau terlalu sering salah!" &lt;/p&gt;

&lt;p&gt;Ini vulnerability umum banget di login, API, atau form sensitif. Yuk kita pelajari bareng, santai tapi powerful, dengan contoh gampang di Laravel!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj45qgnkiovk6tredwc3h.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj45qgnkiovk6tredwc3h.png" alt=" " width="800" height="501"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ilustrasi hacker lagi brute force ini nunjukin ribuan percobaan password – capek banget kalau manual! 😂&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpas9mcb960qlcuu0mijp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpas9mcb960qlcuu0mijp.png" alt=" " width="800" height="432"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gambar robot AI cracking password ini mind-blowing – brute force modern pakai AI!&lt;/p&gt;

&lt;h3&gt;
  
  
  Apa Itu Brute Force Attack? 🤖🔓
&lt;/h3&gt;

&lt;p&gt;Brute force adalah serangan "kasar" yang coba semua kombinasi password sampai benar.&lt;/p&gt;

&lt;p&gt;Jenisnya:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pure Brute Force&lt;/strong&gt;: Coba semua karakter (aaaa, aaab, ... zzzz) – lambat banget!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Dictionary Attack&lt;/strong&gt;: Pakai daftar kata umum (password123, admin, dll) – cepat kalau password lemah.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw6gxw5033e0m8k3chs5k.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw6gxw5033e0m8k3chs5k.png" alt=" " width="739" height="569"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visual dictionary attack ini jelas banget: Hacker pakai list kata umum buat tebak cepat!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fakkfcn2io2wjoct8uagj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fakkfcn2io2wjoct8uagj.png" alt=" " width="800" height="527"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tabel password cracking time 2025 ini serem – password pendek jebol dalam detik!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 1: Brute Force Login Sederhana
&lt;/h3&gt;

&lt;p&gt;Kode login rentan (tanpa limit):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;password&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Login sukses&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hacker pakai tool seperti Hydra atau script Python:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="k"&gt;for&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt; &lt;span class="ow"&gt;in&lt;/span&gt; &lt;span class="n"&gt;dictionary&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
    &lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;/login&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;email&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;victim@email.com&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="s"&gt;password&lt;/span&gt;&lt;span class="sh"&gt;'&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kalau dictionary punya 10.000 kata, coba semua dalam detik!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 2: Credential Stuffing
&lt;/h3&gt;

&lt;p&gt;Pakai username:password bocoran dari breach lain (misal dari LinkedIn hack).&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 3: API Endpoint Tanpa Limit
&lt;/h3&gt;

&lt;p&gt;Hacker flood request ke /api/login – server down (DoS bonus).&lt;/p&gt;

&lt;h3&gt;
  
  
  Rate Limiting: Si Penjaga Pintu! 🛡️⏱️
&lt;/h3&gt;

&lt;p&gt;Rate limiting batasi berapa kali request dari satu IP/user dalam waktu tertentu.&lt;/p&gt;

&lt;p&gt;Contoh: Maksimal 5 attempt login per menit per IP.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdn1moqjtxjpgw3he5x19.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdn1moqjtxjpgw3he5x19.png" alt=" " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram sliding window rate limiting ini keren – batas request bergeser waktu!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5gzmhhlgwmtk4zlbulkx.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5gzmhhlgwmtk4zlbulkx.png" alt=" " width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ilustrasi API rate limiting ini nunjukin barrier yang blokir flood request!&lt;/p&gt;

&lt;h3&gt;
  
  
  Cara Implementasi di Laravel (Super Gampang!)
&lt;/h3&gt;

&lt;p&gt;Laravel punya &lt;strong&gt;Throttle Middleware&lt;/strong&gt; built-in!&lt;/p&gt;

&lt;p&gt;Di Route:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nc"&gt;Route&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;post&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'/login'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nc"&gt;LoginController&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="n"&gt;class&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'login'&lt;/span&gt;&lt;span class="p"&gt;])&lt;/span&gt;
    &lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;middleware&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'throttle:5,1'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// 5 attempt per 1 menit&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Atau custom:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;middleware&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'throttle:60,1'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// 60 request per menit (buat API)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Kalau exceed: "Too Many Attempts" otomatis!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3c63wgcvmmyutp9ahgw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fj3c63wgcvmmyutp9ahgw.png" alt=" " width="800" height="603"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contoh Laravel throttle message ini persis yang muncul kalau kebanyakan attempt!&lt;/p&gt;

&lt;h3&gt;
  
  
  Bonus: Kombinasi dengan Pencegahan Lain
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Hash password kuat (bcrypt/argon2).&lt;/li&gt;
&lt;li&gt;CAPTCHA setelah 3 gagal.&lt;/li&gt;
&lt;li&gt;Account lockout sementara.&lt;/li&gt;
&lt;li&gt;Monitor login failed.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Latihan Seru Buat Kamu! 💪🔥
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Buat login rentan, brute force pakai script sederhana (curl loop).&lt;/li&gt;
&lt;li&gt;Tambahin throttle middleware, test lagi (harusnya blokir!).&lt;/li&gt;
&lt;li&gt;Custom rate limit beda buat login vs API.&lt;/li&gt;
&lt;li&gt;Coba di labs seperti PortSwigger Brute Force.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selamat praktikum, guys! Brute Force ini serangan "bodoh tapi efektif" kalau nggak dicegah, tapi dengan Rate Limiting Laravel, akun kamu aman kayak brankas bank 💰🔒 Jadi developer yang anti-brute dari awal! Ingat: &lt;strong&gt;Batasi attempt, selamatkan password!&lt;/strong&gt; Keep coding safely and have fun! 🎉🚫&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>security</category>
      <category>laravel</category>
      <category>php</category>
    </item>
    <item>
      <title>Praktikum Keamanan Web: Server-Side Request Forgery (SSRF) 🌐🕵️‍♂️</title>
      <dc:creator>ahmadasroni38</dc:creator>
      <pubDate>Thu, 18 Dec 2025 08:23:02 +0000</pubDate>
      <link>https://forem.com/ahmadasroni38/praktikum-keamanan-web-server-side-request-forgery-ssrf-1077</link>
      <guid>https://forem.com/ahmadasroni38/praktikum-keamanan-web-server-side-request-forgery-ssrf-1077</guid>
      <description>&lt;p&gt;Halo, teman-teman mahasiswa! Selamat datang di praktikum super misterius tentang &lt;strong&gt;Server-Side Request Forgery&lt;/strong&gt; atau &lt;strong&gt;SSRF&lt;/strong&gt; – vulnerability yang bikin hacker kayak detektif siluman! Bayangkan aplikasi web kamu punya fitur fetch data dari URL lain (misal preview link, import gambar, atau cek webhook). Kalau nggak dijaga, hacker bisa "paksa" server kamu request ke tempat terlarang: internal network, metadata cloud (AWS/GCP/Azure), atau bahkan localhost! Hasilnya? Baca file rahasia, scan port internal, atau ambil credential cloud. Kayak server kamu jadi boneka hacker tanpa sadar. &lt;/p&gt;

&lt;p&gt;SSRF sering dipakai buat serangan advanced di cloud environment. Yuk kita eksplor bareng, santai tapi mind-blowing, dengan contoh sederhana di PHP/Laravel!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc58w6v04p86mlm82ky8r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fc58w6v04p86mlm82ky8r.png" alt=" " width="800" height="567"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kartun hacker lagi manfaatin SSRF ini lucu tapi nunjukin betapa liciknya – server dipaksa request ke internal! 😂&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9e6do0j0we5w3swr4fbd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9e6do0j0we5w3swr4fbd.png" alt=" " width="299" height="168"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram klasik dari PortSwigger ini gambarin alur SSRF secara jelas – attacker → server → target terlarang!&lt;/p&gt;

&lt;h3&gt;
  
  
  Apa Itu SSRF? 🤔🔍
&lt;/h3&gt;

&lt;p&gt;SSRF terjadi saat server melakukan request ke URL yang dikontrol user tanpa validasi ketat. Server "percaya" input user dan fetch ke mana saja, termasuk:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Internal IP (127.0.0.1, 192.168.x.x, 10.x.x.x)&lt;/li&gt;
&lt;li&gt;Metadata service cloud (&lt;a href="http://169.254.169.254" rel="noopener noreferrer"&gt;http://169.254.169.254&lt;/a&gt; di AWS)&lt;/li&gt;
&lt;li&gt;Local files (file:///etc/passwd)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Dampak: Port scanning, data leakage, RCE kalau chain dengan vuln lain.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3sva5ya5vo62zjcoi9ed.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3sva5ya5vo62zjcoi9ed.png" alt=" " width="800" height="510"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ilustrasi update ini detail banget: Hacker paksa server request ke internal services!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2xlwye7wbdi55q60zgr8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2xlwye7wbdi55q60zgr8.png" alt=" " width="800" height="539"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Flowchart exploit SSRF ini step-by-step – dari input user sampai akses internal!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 1: Preview Link atau Gambar (Klasik SSRF!)
&lt;/h3&gt;

&lt;p&gt;Kode rentan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nv"&gt;$url&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;input&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'url'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nv"&gt;$content&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nb"&gt;file_get_contents&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$url&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// Langsung fetch tanpa cek!&lt;/span&gt;
&lt;span class="k"&gt;echo&lt;/span&gt; &lt;span class="nv"&gt;$content&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Input normal: &lt;a href="https://example.com/image.jpg" rel="noopener noreferrer"&gt;https://example.com/image.jpg&lt;/a&gt; → Tampil gambar.&lt;/p&gt;

&lt;p&gt;Input jahat: &lt;a href="http://127.0.0.1:8080/admin" rel="noopener noreferrer"&gt;http://127.0.0.1:8080/admin&lt;/a&gt; → Tampil halaman admin internal!&lt;/p&gt;

&lt;p&gt;Atau &lt;a href="http://localhost/server-status" rel="noopener noreferrer"&gt;http://localhost/server-status&lt;/a&gt; → Lihat info Apache internal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 2: Akses Metadata Cloud (Bahaya di AWS/Azure/GCP!)
&lt;/h3&gt;

&lt;p&gt;URL jahat: &lt;a href="http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name" rel="noopener noreferrer"&gt;http://169.254.169.254/latest/meta-data/iam/security-credentials/role-name&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Server fetch → Dapat AWS credentials temporary! Hacker ambil alih akun cloud.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F98rmr4h5gjdhz81djyry.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F98rmr4h5gjdhz81djyry.png" alt=" " width="695" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contoh real di Azure services – SSRF buat akses internal!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 3: Port Scanning Internal
&lt;/h3&gt;

&lt;p&gt;Input: &lt;a href="http://192.168.1.1:22" rel="noopener noreferrer"&gt;http://192.168.1.1:22&lt;/a&gt; → Kalau response beda (timeout vs connected), hacker tahu port open!&lt;/p&gt;

&lt;p&gt;Atau bypass filter dengan: &lt;a href="http://2130706433:80" rel="noopener noreferrer"&gt;http://2130706433:80&lt;/a&gt; (IP decimal untuk 127.0.0.1)&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 4: Baca File Local
&lt;/h3&gt;

&lt;p&gt;Kalau allow file:// protocol: file:///etc/passwd → Tampil isi file server!&lt;/p&gt;

&lt;h3&gt;
  
  
  Cara Mencegah SSRF (Best Practices Keren!) 🛡️✨
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Whitelist Domain yang Diizinkan&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;   &lt;span class="nv"&gt;$allowed&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'example.com'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'api.public.com'&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nb"&gt;in_array&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;parse_url&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$url&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kc"&gt;PHP_URL_HOST&lt;/span&gt;&lt;span class="p"&gt;),&lt;/span&gt; &lt;span class="nv"&gt;$allowed&lt;/span&gt;&lt;span class="p"&gt;))&lt;/span&gt; &lt;span class="nf"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;403&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Blacklist Internal IP&lt;/strong&gt;&lt;br&gt;
Cek kalau IP private (127.&lt;em&gt;, 10.&lt;/em&gt;, 192.168.&lt;em&gt;, 172.16-31.&lt;/em&gt;) → Blokir!&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Disable Redirect &amp;amp; Non-HTTP Protocol&lt;/strong&gt;&lt;br&gt;
Pakai Guzzle dengan opsi:&lt;br&gt;
&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;   &lt;span class="nv"&gt;$client&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;\GuzzleHttp\Client&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;&lt;span class="s1"&gt;'allow_redirects'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="kc"&gt;false&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'protocols'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'http'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'https'&lt;/span&gt;&lt;span class="p"&gt;]]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Validasi &amp;amp; Sanitasi URL Ketat&lt;/strong&gt;
Pakai library seperti &lt;code&gt;league/uri&lt;/code&gt; untuk parse aman.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3iuupekkgeitl5ydx2dv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3iuupekkgeitl5ydx2dv.png" alt=" " width="575" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;OWASP common flow prevention – whitelist &amp;amp; blacklist adalah kunci!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fau4xc3hvd1meg16eg4cl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fau4xc3hvd1meg16eg4cl.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Infografis Akamai ini nunjukin cara cegah SSRF secara visual!&lt;/p&gt;

&lt;h3&gt;
  
  
  Latihan Seru Buat Kamu! 💪🔥
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Buat fitur preview URL rentan, test akses localhost.&lt;/li&gt;
&lt;li&gt;Coba metadata AWS (di lab seperti PortSwigger).&lt;/li&gt;
&lt;li&gt;Tambahin whitelist, test bypass (decimal IP, dll).&lt;/li&gt;
&lt;li&gt;Implementasikan secure fetch dengan Guzzle.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selamat praktikum, guys! SSRF ini vulnerability "ninja" yang diam-diam kuat, terutama di cloud – tapi dengan whitelist &amp;amp; validasi, server kamu aman kayak benteng tak terlihat 🔒🌐 Jadi developer yang aware cloud security dari sekarang! Ingat: &lt;strong&gt;Never trust user-provided URLs!&lt;/strong&gt; Keep coding safely and have fun! 🎉🕵️‍♂️&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>webdev</category>
      <category>security</category>
      <category>php</category>
    </item>
    <item>
      <title>Praktikum Keamanan Web: File Upload Vulnerability 😱📁💥</title>
      <dc:creator>ahmadasroni38</dc:creator>
      <pubDate>Thu, 18 Dec 2025 08:17:28 +0000</pubDate>
      <link>https://forem.com/ahmadasroni38/praktikum-keamanan-web-file-upload-vulnerability-37aa</link>
      <guid>https://forem.com/ahmadasroni38/praktikum-keamanan-web-file-upload-vulnerability-37aa</guid>
      <description>&lt;p&gt;Halo, teman-teman mahasiswa! Selamat datang di praktikum super seru dan penting tentang &lt;strong&gt;File Upload Vulnerability&lt;/strong&gt; – salah satu celah keamanan yang paling sering dieksploitasi hacker untuk ambil alih server! Bayangkan kamu punya fitur upload foto profil atau dokumen di website. Kalau nggak dijaga ketat, hacker bisa upload file jahat seperti &lt;strong&gt;web shell&lt;/strong&gt; (script PHP nakal) yang bisa jalankan command di server: baca file rahasia (.env), hapus data, atau bahkan kontrol total server. Kayak kasih remote control ke orang asing! &lt;/p&gt;

&lt;p&gt;Ini sering masuk OWASP Top 10 karena gampang banget dieksploitasi. Yuk kita bahas santai, dengan contoh sederhana di PHP/Laravel, kode mudah dicoba di localhost, dan ilustrasi keren biar langsung paham. Siap jadi hacker etis? 😎&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhs298zoa5cahesd676u8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhs298zoa5cahesd676u8.png" alt=" " width="768" height="549"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ilustrasi hacker lagi upload malicious file ini nunjukin bahayanya – dari form biasa jadi web shell!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7hdekmizd58ym1cepppo.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7hdekmizd58ym1cepppo.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gambar Intigriti ini keren banget gambarin proses file upload vulnerabilities!&lt;/p&gt;

&lt;h3&gt;
  
  
  Apa Itu File Upload Vulnerability? 🤔
&lt;/h3&gt;

&lt;p&gt;Ini terjadi saat aplikasi nggak validasi file upload dengan benar: tipe file, ukuran, nama, isi, atau lokasi penyimpanan. Hacker manfaatin buat upload executable file (PHP, JSP, dll) yang bisa dieksekusi server.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq47c4w20nhdpvdqmcz6q.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fq47c4w20nhdpvdqmcz6q.png" alt=" " width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram step-by-step ini jelasin alur serangan: upload → bypass → execute shell!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F24a3nr4x1f17h522u1a0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F24a3nr4x1f17h522u1a0.png" alt=" " width="800" height="480"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visual lain yang detail banget nunjukin variasi exploit!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 1: Upload Web Shell Sederhana (Klasik!) 🐚
&lt;/h3&gt;

&lt;p&gt;Kode rentan (PHP sederhana):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="k"&gt;isset&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$_FILES&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'file'&lt;/span&gt;&lt;span class="p"&gt;]))&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$file&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nv"&gt;$_FILES&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'file'&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;
    &lt;span class="nb"&gt;move_uploaded_file&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'tmp_name'&lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt; &lt;span class="s1"&gt;'uploads/'&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt;  &lt;span class="c1"&gt;// Langsung simpan nama asli!&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hacker upload file &lt;code&gt;shell.php&lt;/code&gt; dengan isi:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="cp"&gt;&amp;lt;?php&lt;/span&gt; &lt;span class="nb"&gt;system&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$_GET&lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'cmd'&lt;/span&gt;&lt;span class="p"&gt;]);&lt;/span&gt; &lt;span class="cp"&gt;?&amp;gt;&lt;/span&gt;  // Jalankan command dari URL
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Akses: &lt;code&gt;uploads/shell.php?cmd=whoami&lt;/code&gt; → Dapat info server!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmf9qd57czxqfvo2up5l1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmf9qd57czxqfvo2up5l1.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contoh web shell upload – hacker eksekusi command seenaknya!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 2: Bypass Extension (Tricky!)
&lt;/h3&gt;

&lt;p&gt;Validasi lemah: Cek hanya extension &lt;code&gt;.jpg&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;if&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;pathinfo&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$filename&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="no"&gt;PATHINFO_EXTENSION&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="s1"&gt;'jpg'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;die&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'Invalid!'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hacker upload &lt;code&gt;shell.php.jpg&lt;/code&gt; atau &lt;code&gt;shell.jpg.php&lt;/code&gt; (kalau Apache config salah).&lt;/p&gt;

&lt;p&gt;Atau polyglot file: File valid image tapi isi PHP di awal (GIF89a; &amp;lt;?php ... ?&amp;gt;).&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 3: Null Byte Injection (Old but Gold)
&lt;/h3&gt;

&lt;p&gt;Di PHP lama: &lt;code&gt;shell.php%00.jpg&lt;/code&gt; → %00 potong string, jadi simpan sebagai &lt;code&gt;shell.php&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 4: Overwrite File Penting
&lt;/h3&gt;

&lt;p&gt;Simpan dengan nama asli → Upload &lt;code&gt;.htaccess&lt;/code&gt; atau overwrite config.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cara Mencegah File Upload (Best Practices Keren!) 🛡️✨
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Validasi Ketat MIME Type &amp;amp; Extension Whitelist&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;   &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;validate&lt;/span&gt;&lt;span class="p"&gt;([&lt;/span&gt;
       &lt;span class="s1"&gt;'file'&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="s1"&gt;'required|mimes:jpg,png,pdf|max:2048'&lt;/span&gt;  &lt;span class="c1"&gt;// Max 2MB&lt;/span&gt;
   &lt;span class="p"&gt;]);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Rename File Unik&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;   &lt;span class="nv"&gt;$filename&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;Str&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;uuid&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="s1"&gt;'.'&lt;/span&gt; &lt;span class="mf"&gt;.&lt;/span&gt; &lt;span class="nv"&gt;$file&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;getClientOriginalExtension&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Simpan di Private Storage, Bukan Public&lt;/strong&gt;&lt;br&gt;
Pakai &lt;code&gt;storage/app/private&lt;/code&gt;, serve lewat controller (cek auth).&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Verifikasi Isi File (Bukan Cuma Extension)&lt;/strong&gt;&lt;br&gt;
Pakai library seperti Intervention Image untuk cek benar image.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68fjreppx9yrqu7ptmiy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F68fjreppx9yrqu7ptmiy.png" alt=" " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Infografis best practices ini lengkap: validation, unique name, private storage!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qvj87a7f0a76cmvt3mv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0qvj87a7f0a76cmvt3mv.png" alt=" " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Checklist prevention ini dari expert – wajib diikuti!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohc3usliigmdudfbt9rh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fohc3usliigmdudfbt9rh.png" alt=" " width="750" height="422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contoh secure upload flow – aman total!&lt;/p&gt;

&lt;h3&gt;
  
  
  Latihan Seru Buat Kamu! 💪🔥
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Buat form upload rentan, upload shell.php, eksekusi command.&lt;/li&gt;
&lt;li&gt;Tambahin bypass extension, test polyglot.&lt;/li&gt;
&lt;li&gt;Perbaiki dengan validasi Laravel, rename, private storage.&lt;/li&gt;
&lt;li&gt;Coba di labs seperti PortSwigger File Upload.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selamat praktikum, guys! File Upload Vulnerability ini pintu masuk favorit hacker buat RCE, tapi dengan validasi ketat &amp;amp; storage aman, website kamu jadi anti-bullet 🔒💪 Jadi developer yang secure minded dari sekarang! Ingat: &lt;strong&gt;Never trust uploaded files!&lt;/strong&gt; Keep coding safely and have fun! 🎉📁&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>security</category>
      <category>laravel</category>
      <category>php</category>
    </item>
    <item>
      <title>Praktikum Keamanan Web: Broken Access Control &amp; Insecure Direct Object Reference (IDOR) 😱🔓</title>
      <dc:creator>ahmadasroni38</dc:creator>
      <pubDate>Thu, 18 Dec 2025 08:12:07 +0000</pubDate>
      <link>https://forem.com/ahmadasroni38/praktikum-keamanan-web-broken-access-control-insecure-direct-object-reference-idor-51i4</link>
      <guid>https://forem.com/ahmadasroni38/praktikum-keamanan-web-broken-access-control-insecure-direct-object-reference-idor-51i4</guid>
      <description>&lt;p&gt;Halo, teman-teman mahasiswa! Selamat datang di praktikum super penting tentang &lt;strong&gt;Broken Access Control&lt;/strong&gt; – vulnerability nomor 1 di OWASP Top 10 tahun 2025! Ini termasuk &lt;strong&gt;Insecure Direct Object Reference (IDOR)&lt;/strong&gt;, yang kayak pintu samping rumah yang lupa dikunci. Bayangkan kamu login sebagai user biasa, tapi cuma ganti angka di URL (misal /profile/123 jadi /profile/456), terus langsung bisa lihat atau edit data orang lain: profile, invoice, foto pribadi, bahkan delete akun! Serem banget kan? Hacker bisa curi data massal tanpa perlu password.&lt;/p&gt;

&lt;p&gt;Ini beda dari authentication (yang cek "siapa kamu"), tapi authorization (yang cek "boleh nggak kamu akses ini?"). Yuk kita pelajari bareng, santai tapi seru, dengan contoh Laravel gampang dicoba di localhost!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F40ipk248zf2v4jf12iqc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F40ipk248zf2v4jf12iqc.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kartun hacker lagi eksploitasi IDOR ini lucu tapi nunjukin bahayanya – ganti ID doang, data orang lain kebuka! 😂&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foepuaj0nampp5n8a687p.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Foepuaj0nampp5n8a687p.png" alt=" " width="781" height="461"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ilustrasi SVG keren ini gambarin konsep Broken Access Control secara visual – user biasa nyelonong ke area terlarang!&lt;/p&gt;

&lt;h3&gt;
  
  
  Apa Itu Broken Access Control &amp;amp; IDOR? 🤔
&lt;/h3&gt;

&lt;p&gt;Broken Access Control terjadi saat aplikasi nggak cek hak akses dengan benar. IDOR adalah jenis paling umum: Aplikasi pakai reference langsung (seperti ID di database) tanpa verifikasi ownership.&lt;/p&gt;

&lt;p&gt;Contoh sederhana: URL &lt;code&gt;/user/5/edit&lt;/code&gt; → Kalau nggak dicek, user ID 10 bisa edit user ID 5.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fngggmw535ouur9pj0w40.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fngggmw535ouur9pj0w40.png" alt=" " width="800" height="456"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram attack IDOR ini jelas banget: Attacker ganti reference object langsung, bypass authorization!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvnwhtx6ke8uwvljb0z03.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fvnwhtx6ke8uwvljb0z03.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Flowchart serangan IDOR ini step-by-step – dari request normal sampai exploit ganti ID!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 1: Lihat Profile Orang Lain (Klasik IDOR!) 👀
&lt;/h3&gt;

&lt;p&gt;Controller rentan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;findOrFail&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// Ambil user berdasarkan ID tanpa cek!&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;view&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'profile.show'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;compact&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'user'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Route: &lt;code&gt;Route::get('/profile/{id}', [ProfileController::class, 'show']);&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Kamu login sebagai user ID 10, buka &lt;code&gt;/profile/10&lt;/code&gt; → Aman.&lt;/p&gt;

&lt;p&gt;Hacker ganti jadi &lt;code&gt;/profile/11&lt;/code&gt; → Langsung lihat data user lain: email, nomor HP, alamat!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 2: Edit atau Delete Data Orang Lain 🖊️🗑️
&lt;/h3&gt;

&lt;p&gt;Controller rentan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Request&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$user&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;findOrFail&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$id&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;all&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;  &lt;span class="c1"&gt;// Update tanpa cek ownership&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hacker kirim POST ke &lt;code&gt;/user/999/update&lt;/code&gt; dengan data jahat → Ubah email/password user lain.&lt;/p&gt;

&lt;p&gt;Atau delete: &lt;code&gt;User::findOrFail($id)-&amp;gt;delete();&lt;/code&gt; → Hapus akun orang!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 3: Akses Invoice atau Order di E-Commerce 🧾
&lt;/h3&gt;

&lt;p&gt;URL: &lt;code&gt;/invoice/12345&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;User biasa ganti angka sequentially (12345, 12346, ...) → Download semua invoice customer lain. Bisa curi data kartu kredit atau alamat!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 4: Admin Panel Tanpa Cek Role 👑
&lt;/h3&gt;

&lt;p&gt;Controller:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;dashboard&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="o"&gt;!&lt;/span&gt;&lt;span class="nf"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;check&lt;/span&gt;&lt;span class="p"&gt;())&lt;/span&gt; &lt;span class="nf"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;403&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
    &lt;span class="c1"&gt;// Hanya cek login, nggak cek role!&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;view&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'admin.dashboard'&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;User biasa akses &lt;code&gt;/admin/dashboard&lt;/code&gt; → Lihat semua data sensitif.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cara Mencegah di Laravel (Super Mudah &amp;amp; Keren!) 🛡️✨
&lt;/h3&gt;

&lt;p&gt;Laravel punya tools pro: &lt;strong&gt;Policy&lt;/strong&gt;, &lt;strong&gt;Gate&lt;/strong&gt;, &lt;strong&gt;Middleware&lt;/strong&gt;, dan &lt;code&gt;$this-&amp;gt;authorize()&lt;/code&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Pakai Policy (Rekomendasi untuk Model!)&lt;/strong&gt;
Buat policy: &lt;code&gt;php artisan make:policy UserPolicy --model=User&lt;/code&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Di UserPolicy.php:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;   &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;view&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;User&lt;/span&gt; &lt;span class="nv"&gt;$authUser&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;User&lt;/span&gt; &lt;span class="nv"&gt;$targetUser&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
       &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$authUser&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nv"&gt;$targetUser&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// Hanya boleh lihat milik sendiri&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;

   &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;User&lt;/span&gt; &lt;span class="nv"&gt;$authUser&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;User&lt;/span&gt; &lt;span class="nv"&gt;$targetUser&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
       &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nv"&gt;$authUser&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;===&lt;/span&gt; &lt;span class="nv"&gt;$targetUser&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="o"&gt;||&lt;/span&gt; &lt;span class="nv"&gt;$authUser&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;is_admin&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Di Controller:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;   &lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;show&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;User&lt;/span&gt; &lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;  &lt;span class="c1"&gt;// Route Model Binding&lt;/span&gt;
       &lt;span class="nv"&gt;$this&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;authorize&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'view'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// Otomatis cek policy!&lt;/span&gt;
       &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="nf"&gt;view&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'profile.show'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nb"&gt;compact&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s1"&gt;'user'&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fak6nr7susva62mp4g1j1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fak6nr7susva62mp4g1j1.png" alt=" " width="512" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Gambar ini nunjukin cara prevent Broken Access Control di Laravel – pakai policy &amp;amp; gate!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7wj7s9guq460ti987etd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7wj7s9guq460ti987etd.png" alt=" " width="549" height="358"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contoh kode Laravel secure dengan authorization – langsung aman!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Manual Check (Simple)&lt;/strong&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;   &lt;span class="k"&gt;if&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nf"&gt;auth&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;id&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;!==&lt;/span&gt; &lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="n"&gt;id&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="nf"&gt;abort&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;403&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Middleware untuk Admin&lt;/strong&gt;
Buat middleware &lt;code&gt;admin&lt;/code&gt;, apply ke route group.&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Latihan Seru Buat Kamu! 💪🔥
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Buat profile viewer rentan, test IDOR dengan ganti ID di URL.&lt;/li&gt;
&lt;li&gt;Tambahin policy, test lagi (harusnya 403 Forbidden!).&lt;/li&gt;
&lt;li&gt;Buat fitur invoice, exploit sequential ID.&lt;/li&gt;
&lt;li&gt;Implementasikan Gate untuk admin-only feature.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selamat praktikum, guys! Broken Access Control/IDOR ini vulnerability "pintu samping" yang sering terlupakan, tapi dengan Laravel Policy &amp;amp; authorize, aplikasi kamu aman kayak benteng kerajaan 👑🔒 Jadi developer yang pro security dari sekarang! Ingat: &lt;strong&gt;Selalu cek ownership &amp;amp; role sebelum akses data!&lt;/strong&gt; Keep coding safely and have fun! 🎉🐘&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>security</category>
      <category>laravel</category>
      <category>php</category>
    </item>
    <item>
      <title>Praktikum Keamanan Web: Mass Assignment Vulnerability 😱🔓</title>
      <dc:creator>ahmadasroni38</dc:creator>
      <pubDate>Thu, 18 Dec 2025 07:55:52 +0000</pubDate>
      <link>https://forem.com/ahmadasroni38/praktikum-keamanan-web-mass-assignment-vulnerability-fmh</link>
      <guid>https://forem.com/ahmadasroni38/praktikum-keamanan-web-mass-assignment-vulnerability-fmh</guid>
      <description>&lt;p&gt;Halo, teman-teman mahasiswa! Selamat datang di praktikum seru tentang &lt;strong&gt;Mass Assignment&lt;/strong&gt; – vulnerability yang sering disebut "silent killer" di aplikasi modern, terutama yang pakai framework seperti Laravel, Ruby on Rails, atau Node.js. Bayangkan kamu lagi isi form registrasi biasa: nama, email, password. Tapi kalau developer lupa proteksi, hacker bisa "nyelipkan" field rahasia seperti "is_admin = true" dan langsung jadi admin! Kayak kasih kunci rumah ke orang asing tanpa sadar. &lt;/p&gt;

&lt;p&gt;Ini bukan serangan rumit kayak SQLi atau XSS, tapi super berbahaya karena gampang dieksploitasi lewat form atau API. Yuk kita bahas santai, dengan contoh Laravel (paling populer di PHP), kode mudah dicoba, dan ilustrasi keren biar langsung paham! 🚀&lt;/p&gt;

&lt;p&gt;Ilustrasi klasik ini nunjukin gimana mass assignment "mengisi massal" field yang seharusnya dilindungi – hacker senang banget!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ti944ld1lwlh0sphsl8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ti944ld1lwlh0sphsl8.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Kartun hacker lagi eksploitasi mass assignment – jangan ditiru, ini buat belajar aja! 😂&lt;/p&gt;

&lt;h3&gt;
  
  
  Apa Itu Mass Assignment? 🤔
&lt;/h3&gt;

&lt;p&gt;Mass Assignment adalah fitur keren di ORM (Object-Relational Mapping) seperti Eloquent di Laravel yang memungkinkan isi banyak field model sekaligus dari array input (misal dari form atau request API).&lt;/p&gt;

&lt;p&gt;Contoh normal &amp;amp; berguna:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="nc"&gt;User&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;all&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;  &lt;span class="c1"&gt;// Isi semua field dari input&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Tapi kalau nggak ada proteksi, semua field di tabel database bisa diisi user – termasuk yang sensitif seperti &lt;code&gt;is_admin&lt;/code&gt;, &lt;code&gt;role&lt;/code&gt;, &lt;code&gt;balance&lt;/code&gt;, dll.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ikr2nteyt5smmdno8wc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ikr2nteyt5smmdno8wc.png" alt=" " width="664" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram sederhana ini gambarin proses mass assignment – dari request sampai database keisi data tak terduga!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 1: Registrasi User Jadi Admin Gratis! 👑
&lt;/h3&gt;

&lt;p&gt;Model User tanpa proteksi:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Model&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="c1"&gt;// Kosong! Semua field boleh diisi massal&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Controller rentan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;register&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Request&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nc"&gt;User&lt;/span&gt;&lt;span class="o"&gt;::&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;all&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
    &lt;span class="k"&gt;return&lt;/span&gt; &lt;span class="s2"&gt;"Registrasi sukses!"&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Form normal: name, email, password.&lt;/p&gt;

&lt;p&gt;Hacker tambahin di request (pakai Burp Suite atau Postman):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight json"&gt;&lt;code&gt;&lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"name"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"Hacker"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"email"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"hack@evil.com"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"password"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"123"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="w"&gt;
    &lt;/span&gt;&lt;span class="nl"&gt;"is_admin"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;&lt;span class="w"&gt;
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Boom! User baru langsung jadi admin. Bisa hapus data, ubah apa saja!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg608od7e8v39v9l0z064.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg608od7e8v39v9l0z064.png" alt=" " width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visual in-depth ini nunjukin serangan mass assignment di Laravel – hacker ubah role seenaknya!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 2: Ubah Role di Update Profile
&lt;/h3&gt;

&lt;p&gt;Controller update rentan:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;&lt;span class="k"&gt;public&lt;/span&gt; &lt;span class="k"&gt;function&lt;/span&gt; &lt;span class="n"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="kt"&gt;Request&lt;/span&gt; &lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="kt"&gt;User&lt;/span&gt; &lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="nv"&gt;$user&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;update&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nv"&gt;$request&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nf"&gt;all&lt;/span&gt;&lt;span class="p"&gt;());&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hacker kirim: "role" =&amp;gt; "superadmin" → Akun biasa jadi superadmin.&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 3: Kasus Nyata (GitHub 2012)
&lt;/h3&gt;

&lt;p&gt;Dulu Ruby on Rails kena mass assignment, hacker bisa buat akun admin di GitHub. Untung cepet ditambal!&lt;/p&gt;

&lt;h3&gt;
  
  
  Cara Mencegah Mass Assignment di Laravel (Wajib!) 🛡️✨
&lt;/h3&gt;

&lt;p&gt;Laravel punya dua cara keren:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;$fillable&lt;/strong&gt; (Whitelist – Rekomendasi!)
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;   &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Model&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
       &lt;span class="k"&gt;protected&lt;/span&gt; &lt;span class="nv"&gt;$fillable&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'name'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'email'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'password'&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;  &lt;span class="c1"&gt;// Hanya ini boleh diisi massal&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;$guarded&lt;/strong&gt; (Blacklist)
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight php"&gt;&lt;code&gt;   &lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;User&lt;/span&gt; &lt;span class="kd"&gt;extends&lt;/span&gt; &lt;span class="nc"&gt;Model&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
       &lt;span class="k"&gt;protected&lt;/span&gt; &lt;span class="nv"&gt;$guarded&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="s1"&gt;'is_admin'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="s1"&gt;'role'&lt;/span&gt;&lt;span class="p"&gt;];&lt;/span&gt;  &lt;span class="c1"&gt;// Ini dilarang diisi massal&lt;/span&gt;
       &lt;span class="c1"&gt;// Atau $guarded = []; // Larang semua (paling aman, isi manual)&lt;/span&gt;
   &lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6lbj1n7e34ch1q1fjpns.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6lbj1n7e34ch1q1fjpns.png" alt=" " width="720" height="540"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ilustrasi fillable vs guarded ini bikin langsung paham perbedaannya – pakai fillable biar aman!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhk3m2nlmbbb9drbyce24.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhk3m2nlmbbb9drbyce24.png" alt=" " width="686" height="386"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visual lain yang jelasin proteksi di Laravel – bookmark ya!&lt;/p&gt;

&lt;h3&gt;
  
  
  Bonus: Best Practices
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Selalu pakai &lt;code&gt;$fillable&lt;/code&gt; atau &lt;code&gt;$guarded&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Validasi input terpisah (&lt;code&gt;$request-&amp;gt;validate()&lt;/code&gt;).&lt;/li&gt;
&lt;li&gt;Untuk API, cek field manual kalau perlu.&lt;/li&gt;
&lt;li&gt;Jangan pernah biarin model kosong tanpa proteksi!&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Latihan Seru Buat Kamu! 💪🔥
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Buat project Laravel sederhana dengan registrasi rentan, test jadi admin pakai Postman.&lt;/li&gt;
&lt;li&gt;Tambahin &lt;code&gt;$fillable&lt;/code&gt;, test lagi (harusnya gagal!).&lt;/li&gt;
&lt;li&gt;Coba update profile dengan field sensitif.&lt;/li&gt;
&lt;li&gt;Diskusi: Kenapa mass assignment sering terlupakan pemula?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selamat praktikum, guys! Mass Assignment ini vulnerability "diam" tapi fatal, tapi dengan &lt;code&gt;$fillable&lt;/code&gt; atau &lt;code&gt;$guarded&lt;/code&gt;, aplikasi Laravel kamu aman kayak benteng 🔥 Jadi developer yang aware security dari awal! Ingat: &lt;strong&gt;Selalu kontrol apa yang boleh diisi massal!&lt;/strong&gt; Keep coding safely and have fun! 🎉🔐🐘&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>security</category>
      <category>laravel</category>
      <category>php</category>
    </item>
    <item>
      <title>Praktikum Keamanan Web: Cross-Site Request Forgery (CSRF) 😱🛡️</title>
      <dc:creator>ahmadasroni38</dc:creator>
      <pubDate>Thu, 18 Dec 2025 07:45:20 +0000</pubDate>
      <link>https://forem.com/ahmadasroni38/praktikum-keamanan-web-cross-site-request-forgery-csrf-10jb</link>
      <guid>https://forem.com/ahmadasroni38/praktikum-keamanan-web-cross-site-request-forgery-csrf-10jb</guid>
      <description>&lt;p&gt;Halo, teman-teman mahasiswa! Selamat datang di praktikum keren tentang &lt;strong&gt;Cross-Site Request Forgery&lt;/strong&gt; atau &lt;strong&gt;CSRF&lt;/strong&gt; – salah satu serangan web yang licik banget! Bayangkan kamu lagi login di bank online, terus buka tab lain ke situs jahat. Tanpa sadar, situs jahat itu bisa "paksa" browser kamu kirim request ke bank buat transfer uang ke hacker – padahal kamu nggak klik apa-apa! Serem kan? Ini karena browser otomatis kirim cookie autentikasi kalau request dari situs lain.&lt;/p&gt;

&lt;p&gt;CSRF kayak "pemalsuan permintaan" dari situs lain, manfaatin kepercayaan browser ke cookie session. Yuk kita pelajari bareng, santai tapi seru, dengan contoh gampang dan ilustrasi visual!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy071cl0cvkt8ey9efwsk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy071cl0cvkt8ey9efwsk.png" alt=" " width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ilustrasi klasik ini nunjukin alur serangan CSRF – victim tergoda klik atau buka situs jahat, terus request jahat dikirim otomatis!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1yeebo4rzio20g0xel4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn1yeebo4rzio20g0xel4.png" alt=" " width="656" height="448"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram sederhana ini gambarin gimana hacker "nyamar" pakai session victim – super jelas!&lt;/p&gt;

&lt;h3&gt;
  
  
  Apa Itu CSRF? 🤔
&lt;/h3&gt;

&lt;p&gt;CSRF adalah serangan di mana situs jahat memaksa browser user yang sudah login ke situs target untuk melakukan aksi tidak diinginkan (transfer uang, ubah password, delete akun, dll).&lt;/p&gt;

&lt;p&gt;Syarat utama:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;User sudah login (ada cookie session valid).&lt;/li&gt;
&lt;li&gt;Aksi penting pakai method GET atau POST tanpa proteksi.&lt;/li&gt;
&lt;li&gt;Browser otomatis kirim cookie ke domain asal.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F08zofpl0d6zq3gt8ueoa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F08zofpl0d6zq3gt8ueoa.png" alt=" " width="299" height="168"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Flowchart detail ini dari PortSwigger – langkah demi langkah serangan CSRF, langsung paham!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 1: Transfer Uang di Bank Online (Klasik Banget!) 💸
&lt;/h3&gt;

&lt;p&gt;Situs bank rentan: Form transfer pakai GET.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;http://bank.com/transfer?jumlah=1000000&amp;amp;rekening_tujuan=12345678
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Hacker buat situs jahat:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;img&lt;/span&gt; &lt;span class="na"&gt;src=&lt;/span&gt;&lt;span class="s"&gt;"http://bank.com/transfer?jumlah=5000000&amp;amp;rekening_tujuan=hacker123"&lt;/span&gt; &lt;span class="na"&gt;width=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt; &lt;span class="na"&gt;height=&lt;/span&gt;&lt;span class="s"&gt;"1"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Victim yang sudah login bank buka situs jahat → Browser load gambar, otomatis kirim request transfer ke hacker! Uang hilang tanpa victim sadar.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ryn6xf1x29lyo41f3sc.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3ryn6xf1x29lyo41f3sc.png" alt=" " width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Contoh bank transfer ini persis gambarin bahaya CSRF – duit lenyap diam-diam!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 2: Ubah Email di Profile (POST Attack)
&lt;/h3&gt;

&lt;p&gt;Form rentan (POST tanpa proteksi):&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"/ubah-email"&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;"POST"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"baru@email.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;button&amp;gt;&lt;/span&gt;Simpan&lt;span class="nt"&gt;&amp;lt;/button&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Situs jahat:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;form&lt;/span&gt; &lt;span class="na"&gt;action=&lt;/span&gt;&lt;span class="s"&gt;"http://situs.com/ubah-email"&lt;/span&gt; &lt;span class="na"&gt;method=&lt;/span&gt;&lt;span class="s"&gt;"POST"&lt;/span&gt; &lt;span class="na"&gt;id=&lt;/span&gt;&lt;span class="s"&gt;"jahat"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nt"&gt;&amp;lt;input&lt;/span&gt; &lt;span class="na"&gt;type=&lt;/span&gt;&lt;span class="s"&gt;"hidden"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"email"&lt;/span&gt; &lt;span class="na"&gt;value=&lt;/span&gt;&lt;span class="s"&gt;"hacker@evil.com"&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;/form&amp;gt;&lt;/span&gt;
&lt;span class="nt"&gt;&amp;lt;script&amp;gt;&lt;/span&gt;&lt;span class="nb"&gt;document&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;getElementById&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;jahat&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;).&lt;/span&gt;&lt;span class="nf"&gt;submit&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;&lt;span class="nt"&gt;&amp;lt;/script&amp;gt;&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Victim buka → Form otomatis submit, email diganti jadi milik hacker!&lt;/p&gt;

&lt;h3&gt;
  
  
  Contoh 3: Like atau Delete Post di Sosmed
&lt;/h3&gt;

&lt;p&gt;Kalau like pakai GET: ?post_id=123&amp;amp;action=like → Hacker bisa buat img tag buat auto-like atau delete.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cara Mencegah CSRF (Super Efektif!) 🔐✨
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Gunakan CSRF Token&lt;/strong&gt; (Yang Paling Umum &amp;amp; Kuat)

&lt;ul&gt;
&lt;li&gt;Server generate token unik per session/form.&lt;/li&gt;
&lt;li&gt;Token dikirim di form (hidden input) atau header.&lt;/li&gt;
&lt;li&gt;Server cek token sebelum proses request.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn3esh8vdbdal1szh3jcf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn3esh8vdbdal1szh3jcf.png" alt=" " width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Diagram ini nunjukin gimana CSRF token blokir serangan – situs jahat nggak punya token valid!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7zhc92gbbe9vg4mmmvx0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7zhc92gbbe9vg4mmmvx0.png" alt=" " width="800" height="589"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Visual proteksi token ini bikin langsung ngerti kenapa aman!&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;SameSite Cookie&lt;/strong&gt;: Set cookie dengan SameSite=Lax atau Strict → Browser nggak kirim cookie ke request cross-site.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Gunakan POST untuk aksi penting&lt;/strong&gt;, bukan GET.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Double Submit Cookie&lt;/strong&gt; atau framework built-in (Laravel, Django otomatis proteksi).&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Bonus: CSRF vs XSS 🆚
&lt;/h3&gt;

&lt;p&gt;CSRF manfaatin kepercayaan ke cookie, XSS suntik script.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F71wcjrk9c7w3n4wo2uqn.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F71wcjrk9c7w3n4wo2uqn.png" alt=" " width="778" height="585"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Comparison ini jelasin bedanya – dua musuh berbeda tapi sama bahayanya!&lt;/p&gt;

&lt;h3&gt;
  
  
  Latihan Seru Buat Kamu! 💪🔥
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Buat form transfer rentan di PHP, test CSRF pakai img tag.&lt;/li&gt;
&lt;li&gt;Tambahin CSRF token manual, test lagi (harusnya gagal!).&lt;/li&gt;
&lt;li&gt;Coba di labs seperti PortSwigger Web Security Academy (ada lab CSRF gratis).&lt;/li&gt;
&lt;li&gt;Diskusi: Kenapa banyak bank pakai token + OTP ekstra?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Selamat praktikum, guys! CSRF ini serangan "diam-diam" yang licik, tapi dengan token, website kamu aman kayak brankas bank 💰 Jadi developer yang aware security dari sekarang! Ingat: &lt;strong&gt;Selalu proteksi aksi state-changing!&lt;/strong&gt; Keep coding safely and have fun! 🎉🔐&lt;/p&gt;

</description>
      <category>tutorial</category>
      <category>beginners</category>
      <category>webdev</category>
      <category>security</category>
    </item>
  </channel>
</rss>
