{"id":632,"date":"2026-11-07T07:26:16","date_gmt":"2026-11-07T07:26:16","guid":{"rendered":"https:\/\/kuliahelektro.org\/?p=632"},"modified":"2026-11-07T07:26:16","modified_gmt":"2026-11-07T07:26:16","slug":"tutorial-arduino-cara-membuat-game-edukasi-kuis-perkalian-angka-interaktif-menggunakan-layar-oled-ssd1306-rotary-encoder-buzzer-led-pada-wokwi","status":"publish","type":"post","link":"https:\/\/kuliahelektro.org\/?p=632","title":{"rendered":"Tutorial Arduino: Cara Membuat Game Edukasi Kuis Perkalian Angka Interaktif Menggunakan Layar OLED SSD1306, Rotary Encoder, Buzzer, &amp; LED pada WOKWI"},"content":{"rendered":"\n<p>Pada bagian ini akan dibahas pembuatan proyek game edukasi matematika interaktif (Educational Multiplication Game Device) berbasis mikrokontroler Arduino\/ESP32, layar OLED SSD1306 (128&#215;64 I2C), rotary encoder sebagai pengatur menu dan penambah\/pengurang nilai jawaban, buzzer efek suara (tone sukses, salah, dan alarm), lampu LED indikator, serta platform simulasi WOKWI. Skematik rangkaian ditunjukkan pada Gambar 1, program Arduino pada Kode 1, dan video pembuatan pada tautan Video 1. Sistem dilengkapi dengan menu pengaturan lengkap (pilihan mode tingkat kesulitan Easy\/Medium\/Hard dengan timer hitung mundur, jumlah angka perkalian 2 hingga 10, serta pilihan level bilangan satuan, puluhan, hingga ratusan) untuk menguji kecepatan dan ketepatan berhitung perkalian secara seru.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large is-resized\"><a href=\"https:\/\/www.youtube.com\/watch?v=hxnevJMMwPs&amp;lc=UgyLG8mQnl0AdxpBOP54AaABAg\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"1009\" src=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-7-1024x1009.png\" alt=\"\" class=\"wp-image-633\" style=\"aspect-ratio:1.0148662041625371;width:560px;height:auto\" srcset=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-7-1024x1009.png 1024w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-7-300x296.png 300w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-7-768x757.png 768w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-7.png 1084w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div>\n\n\n<p class=\"has-text-align-center\"><strong>Gambar 1. Skematik rangkaian sistem<\/strong><\/p>\n\n\n\n<p><strong>List Pin:<\/strong><\/p>\n\n\n\n<ul>\n<li>Modul Rotary Encoder<br>CLK (Clock Pin) =&gt; Digital Pin 2 (CLK)<br>DT (Data Pin) =&gt; Digital Pin 3 (DT)<br>SW (Switch Pin) =&gt; Digital Pin 4 (SW &#8211; dengan internal pull-up)<br>VCC =&gt; 5V \/ 3.3V<br>GND =&gt; GND<\/li>\n\n\n\n<li>Layar OLED Display I2C (128&#215;64 SSD1306)<br>SDA =&gt; Pin SDA (GPIO 21 pada ESP32 \/ A4 pada Arduino Uno)<br>SCL =&gt; Pin SCL (GPIO 22 pada ESP32 \/ A5 pada Arduino Uno)<br>VCC =&gt; 5V \/ 3.3V<br>GND =&gt; GND<\/li>\n\n\n\n<li>Aktuator Indikator &amp; Audio<br>Buzzer Alarm (Positive Terminal) =&gt; Digital Pin 5 (BUZZER)<br>LED Indikator Jawaban Benar =&gt; Digital Pin 6 (LED_PIN via Resistor 220 Ohm)<\/li>\n<\/ul>\n\n\n\n<p><strong>List Virtual PIN:<\/strong><\/p>\n\n\n\n<ul>\n<li>Proyek ini dirancang sebagai perangkat konsol game edukasi interaktif mandiri (standalone\/offline) pada platform WOKWI menggunakan layar OLED, rotary encoder, dan buzzer tanpa koneksi internet\/cloud. Oleh karena itu, pemetaan Virtual Pin Blynk tidak diterapkan pada modul proyek ini.<\/li>\n<\/ul>\n\n\n\n<pre class=\"wp-block-code\"><code>\/\/ALFIAN CENTER\r\n\/\/SUBSCRIBE\r\n\/\/=== PROGRAM DI SHARE KALO LIKE LEBIH DARI 50 KOMEN LEBIH DARI 20 ===\r\n\r\n#include &lt;Wire.h>\r\n#include &lt;Adafruit_GFX.h>\r\n#include &lt;Adafruit_SSD1306.h>\r\n#include &lt;Encoder.h>\r\n\r\n#define SCREEN_WIDTH 128\r\n#define SCREEN_HEIGHT 64\r\nAdafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &amp;Wire, -1);\r\n\r\n\/\/ Pin\r\n#define CLK 2\r\n#define DT 3\r\n#define SW 4\r\n#define BUZZER 5\r\n#define LED_PIN 6\r\n\r\n\/\/ Rotary Encoder\r\nEncoder encoder(CLK, DT);\r\n#define ENCODER_STEPS_PER_TICK 4\r\n#define ENCODER_DIRECTION -1\r\nlong lastRawEncoder = 0;\r\n\r\nint readEncoderStep() {\r\n  long newRaw = encoder.read();\r\n  long delta = newRaw - lastRawEncoder;\r\n  int step = 0;\r\n\r\n  if (delta >= ENCODER_STEPS_PER_TICK) {\r\n    step = 1;\r\n    lastRawEncoder += ENCODER_STEPS_PER_TICK;\r\n  } else if (delta &lt;= -ENCODER_STEPS_PER_TICK) {\r\n    step = -1;\r\n    lastRawEncoder -= ENCODER_STEPS_PER_TICK;\r\n  }\r\n  return step * ENCODER_DIRECTION;\r\n}\r\n\r\n\/\/ ================== STATE ==================\r\nenum SystemState { STATE_MENU, STATE_GAME };\r\nSystemState systemState = STATE_MENU;\r\n\r\nenum MenuState { MENU_NAVIGATE, MENU_EDIT };\r\nMenuState menuState = MENU_NAVIGATE;\r\n\r\n\/\/ Menu Data\r\nint menuIndex = 0;\r\nString modeOptions&#91;3] = {\"Easy\", \"Medium\", \"Hard\"};\r\nint modeIndex = 0;\r\n\r\nint angkaOptions&#91;9] = {2,3,4,5,6,7,8,9,10};\r\nint angkaIndex = 0;\r\n\r\nString levelOptions&#91;3] = {\"Satuan\", \"Puluhan\", \"Ratusan\"};\r\nint levelIndex = 0;\r\n\r\n\/\/ Game Data\r\nint soal&#91;10];\r\nint jumlahAngka = 2;\r\nint jawabanBenar = 0;\r\nint jawabanPlayer = 0;\r\nint skor = 0;\r\nint kesempatan = 3;\r\nbool swPressed = false;\r\n\r\n\r\n\/\/ALFIAN CENTER\r\n\/\/SUBSCRIBE\r\n\/\/ Timer\r\nunsigned long startTime = 0; \/\/ waktu soal dimulai\r\nint timeLimit = 0;           \/\/ batas waktu detik per soal\r\n\r\n\/\/ ================== SETUP ==================\r\nvoid setup() {\r\n  pinMode(BUZZER, OUTPUT);\r\n  pinMode(LED_PIN, OUTPUT);\r\n  pinMode(SW, INPUT_PULLUP);\r\n\r\n  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {\r\n    for(;;); \/\/ stop kalau OLED gagal\r\n  }\r\n\r\n  display.clearDisplay();\r\n  display.setTextSize(1);\r\n  display.setTextColor(SSD1306_WHITE);\r\n  display.setCursor(0, 0);\r\n  display.println(\"Game Tebak Angka\");\r\n  display.display();\r\n  delay(1500);\r\n}\r\n\r\n\/\/ ================== LOOP ==================\r\nvoid loop() {\r\n  int step = readEncoderStep();\r\n\r\n  \/\/ MENU\r\n  if (systemState == STATE_MENU) {\r\n    if (menuState == MENU_NAVIGATE) {\r\n      if (step != 0) {\r\n        menuIndex = (menuIndex + step + 4) % 4;\r\n      }\r\n    } else if (menuState == MENU_EDIT) {\r\n      if (step != 0) {\r\n        if (menuIndex == 0) modeIndex = (modeIndex + step + 3) % 3;\r\n        else if (menuIndex == 1) angkaIndex = (angkaIndex + step + 9) % 9;\r\n        else if (menuIndex == 2) levelIndex = (levelIndex + step + 3) % 3;\r\n      }\r\n    }\r\n  }\r\n\r\n\r\n\/\/ALFIAN CENTER\r\n\/\/SUBSCRIBE\r\n  \/\/ GAME\r\n  else if (systemState == STATE_GAME) {\r\n    if (step == 1) jawabanPlayer++;\r\n    else if (step == -1 &amp;&amp; jawabanPlayer > 0) jawabanPlayer--;\r\n\r\n    \/\/ ===== Timer cek =====\r\n    if (timeLimit > 0) {\r\n      unsigned long elapsed = (millis() - startTime) \/ 1000;\r\n      if (elapsed >= timeLimit) {\r\n        kesempatan--;  \/\/ darah berkurang\r\n        tone(BUZZER, 400, 200);\r\n        if (kesempatan &lt;= 0) {\r\n          gameOver();\r\n        } else {\r\n          buatSoalBaru();  \/\/ soal baru &amp; reset timer\r\n        }\r\n      }\r\n    }\r\n  }\r\n\r\n  \/\/ BUTTON\r\n  if (digitalRead(SW) == LOW &amp;&amp; !swPressed) {\r\n    swPressed = true;\r\n    handleSelect();\r\n    delay(200);\r\n  } else if (digitalRead(SW) == HIGH) {\r\n    swPressed = false;\r\n  }\r\n\r\n  if (systemState == STATE_MENU) drawMenu();\r\n  else if (systemState == STATE_GAME) drawGame();\r\n}\r\n\r\n\r\n\/\/ALFIAN CENTER\r\n\/\/SUBSCRIBE\r\n\/\/ ================== HANDLE BUTTON ==================\r\nvoid handleSelect() {\r\n  if (systemState == STATE_MENU) {\r\n    if (menuState == MENU_NAVIGATE) {\r\n      if (menuIndex == 3) { \r\n        \/\/ Start ditekan -> masuk game\r\n        tone(BUZZER, 1000, 150);\r\n        digitalWrite(LED_PIN, HIGH);\r\n        delay(150);\r\n        digitalWrite(LED_PIN, LOW);\r\n        startGame();\r\n      } else {\r\n        menuState = MENU_EDIT;\r\n      }\r\n    } else if (menuState == MENU_EDIT) {\r\n      menuState = MENU_NAVIGATE;\r\n    }\r\n  } else if (systemState == STATE_GAME) {\r\n    \/\/ Submit jawaban player\r\n    if (jawabanPlayer == jawabanBenar) {\r\n      skor++;\r\n      digitalWrite(LED_PIN, HIGH);\r\n      tone(BUZZER, 1500, 150);\r\n      delay(200);\r\n      digitalWrite(LED_PIN, LOW);\r\n      buatSoalBaru();\r\n    } else {\r\n      kesempatan--;\r\n      tone(BUZZER, 500, 400);\r\n      if (kesempatan &lt;= 0) {\r\n        gameOver();\r\n      }\r\n    }\r\n  }\r\n}\r\n\r\n\r\n\/\/ALFIAN CENTER\r\n\/\/SUBSCRIBE\r\n\/\/ ================== GAME LOGIC ==================\r\nvoid startGame() {\r\n  systemState = STATE_GAME;\r\n  skor = 0;\r\n  kesempatan = 3;\r\n  buatSoalBaru();\r\n}\r\n\r\nvoid buatSoalBaru() {\r\n  jumlahAngka = angkaOptions&#91;angkaIndex];\r\n  int maxVal = 9;\r\n  if (levelIndex == 1) maxVal = 99;\r\n  else if (levelIndex == 2) maxVal = 999;\r\n\r\n  jawabanBenar = 1;   \/\/ mulai dari 1, karena perkalian\r\n  for (int i = 0; i &lt; jumlahAngka; i++) {\r\n    soal&#91;i] = random(1, maxVal+1);\r\n    jawabanBenar *= soal&#91;i];   \/\/ ganti += jadi *=\r\n  }\r\n  jawabanPlayer = 0;\r\n  encoder.write(0);   \r\n  lastRawEncoder = 0;\r\n\r\n  \/\/ Atur timer\r\n  if (modeIndex == 0) timeLimit = 0; \/\/ Eazy\r\n  else if (modeIndex == 1) timeLimit = 20; \/\/Medium\r\n  else if (modeIndex == 2) timeLimit = 10; \/\/Hard\r\n\r\n  startTime = millis();\r\n}\r\n\r\n\r\nvoid gameOver() {\r\n  display.clearDisplay();\r\n  display.setTextSize(1);\r\n  display.setCursor(0,0);\r\n  display.println(\"GAME OVER!\");\r\n  display.setCursor(0,16);\r\n  display.print(\"Score: \");\r\n  display.println(skor);\r\n  display.display();\r\n  delay(3000);\r\n  systemState = STATE_MENU;\r\n  encoder.write(0);\r\n  lastRawEncoder = 0;\r\n}\r\n\r\n\r\n\/\/ALFIAN CENTER\r\n\/\/SUBSCRIBE\r\n\/\/ ================== OLED ==================\r\nvoid drawMenu() {\r\n  display.clearDisplay();\r\n  display.setTextSize(1);\r\n  display.setCursor(0,0);\r\n  display.println(\"Tebak Perkalian\");\r\n\r\n  \/\/ Mode\r\n  display.setCursor(0,12);\r\n  display.print(menuIndex == 0 ? \">\" : \" \");\r\n  display.print(\"Mode: \");\r\n  if (menuState == MENU_EDIT &amp;&amp; menuIndex == 0) display.print(\"&#91;\");\r\n  display.print(modeOptions&#91;modeIndex]);\r\n  if (menuState == MENU_EDIT &amp;&amp; menuIndex == 0) display.print(\"]\");\r\n\r\n  \/\/ Angka\r\n  display.setCursor(0,24);\r\n  display.print(menuIndex == 1 ? \">\" : \" \");\r\n  display.print(\"Angka: \");\r\n  if (menuState == MENU_EDIT &amp;&amp; menuIndex == 1) display.print(\"&#91;\");\r\n  display.print(angkaOptions&#91;angkaIndex]);\r\n  if (menuState == MENU_EDIT &amp;&amp; menuIndex == 1) display.print(\"]\");\r\n\r\n  \/\/ Level\r\n  display.setCursor(0,36);\r\n  display.print(menuIndex == 2 ? \">\" : \" \");\r\n  display.print(\"Level: \");\r\n  if (menuState == MENU_EDIT &amp;&amp; menuIndex == 2) display.print(\"&#91;\");\r\n  display.print(levelOptions&#91;levelIndex]);\r\n  if (menuState == MENU_EDIT &amp;&amp; menuIndex == 2) display.print(\"]\");\r\n\r\n  \/\/ Start\r\n  display.setCursor(0,48);\r\n  display.print(menuIndex == 3 ? \">\" : \" \");\r\n  display.print(\"Start\");\r\n\r\n  display.display();\r\n}\r\n\r\nvoid drawGame() {\r\n  display.clearDisplay();\r\n\r\n\r\n\/\/ALFIAN CENTER\r\n\/\/SUBSCRIBE\r\n  \/\/ Header\r\n  display.setTextSize(1);\r\n  display.setCursor(0,0);\r\n  display.print(\"Skor:\");\r\n  display.print(skor);\r\n  display.setCursor(64,0);\r\n  display.print(\"Sisa:\");\r\n  display.print(kesempatan);\r\n\r\n  \/\/ --- Buat string soal dulu ---\r\n  String soalStr = \"\";\r\n  for (int i = 0; i &lt; jumlahAngka; i++) {\r\n    soalStr += String(soal&#91;i]);\r\n    if (i &lt; jumlahAngka-1) soalStr += \"x\";\r\n  }\r\n\r\n  \/\/ --- Pilih ukuran font berdasarkan panjang soal ---\r\n  int soalLen = soalStr.length();\r\n  int textSizeSoal = 2;\r\n  if (soalLen > 12) textSizeSoal = 1;   \/\/ soal panjang \u2192 kecil\r\n  else if (soalLen > 8) textSizeSoal = 2; \/\/ medium\r\n  else textSizeSoal = 2;                 \/\/ pendek \u2192 besar\r\n\r\n  \/\/ Tampilkan soal\r\n  display.setTextSize(textSizeSoal);\r\n  display.setCursor(0, 16);\r\n  display.print(soalStr);\r\n\r\n  \/\/ Jawaban lebih besar dari soal, tapi tetap aman\r\n  int jawabanLen = String(jawabanPlayer).length();\r\n  int textSizeJawab = (jawabanLen > 4) ? 1 : 2;\r\n\r\n  display.setTextSize(textSizeJawab);\r\n  display.setCursor(0, 40);\r\n  display.print(\"= \");\r\n  display.print(jawabanPlayer);\r\n\r\n\r\n\/\/ALFIAN CENTER\r\n\/\/SUBSCRIBE\r\n  \/\/ Timer\r\n  if (timeLimit > 0) {\r\n    unsigned long elapsedMs = millis() - startTime;\r\n    int remaining = max(0, timeLimit - (elapsedMs \/ 1000));\r\n\r\n    \/\/ Angka countdown\r\n    display.setTextSize(1);\r\n    display.setCursor(95,50);\r\n    display.print(\"T:\");\r\n    display.print(remaining);\r\n\r\n    \/\/ Progress bar\r\n    float ratio = 1.0 - (float)elapsedMs \/ (timeLimit * 1000.0);\r\n    if (ratio &lt; 0) ratio = 0;\r\n    int barWidth = (int)(80 * ratio);\r\n\r\n    display.drawRect(5, 55, 80, 6, SSD1306_WHITE);      \/\/ border\r\n    display.fillRect(5, 55, barWidth, 6, SSD1306_WHITE); \/\/ isi\r\n  }\r\n\r\n  display.display();\r\n}\r<\/code><\/pre>\n\n\n\n<p class=\"has-text-align-center\"><strong>Kode Arduino 1. Kode Program<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/www.youtube.com\/watch?v=hxnevJMMwPs&amp;lc=UgyLG8mQnl0AdxpBOP54AaABAg\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" loading=\"lazy\" width=\"1024\" height=\"576\" src=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-8-1024x576.png\" alt=\"\" class=\"wp-image-634\" srcset=\"https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-8-1024x576.png 1024w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-8-300x169.png 300w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-8-768x432.png 768w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-8-1536x864.png 1536w, https:\/\/kuliahelektro.org\/wp-content\/uploads\/2026\/11\/image-8-2048x1152.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"has-text-align-center\"><strong>Video 1. Video tutorial pembuatan<\/strong><\/p>\n\n\n\n<h1 class=\"wp-block-heading\">TAG:<\/h1>\n\n\n\n<p class=\"has-text-align-left\">game edukasi perkalian arduino, kuis matematika oled display, rotary encoder arduino uno, oled ssd1306 128&#215;64, blynk wokwi math game, tutorial arduino oled, iot game edukasi anak, game tebak perkalian interaktif, library adafruit ssd1306, library encoder arduino, buzzer tone melodi game, led indikator jawaban, pinout rotary encoder clk dt sw, i2c oled display arduino, game kuis matematika oled, fungsi draw game menu, random number generator perkalian, tutorial wokwi indonesia, simulasi iot game edukasi, permainan perkalian digital, oled screen graphics menu, datastream oled display, smart educational appliances, proyek teknik elektro kreatif, mekatronika game edukasi, tugas akhir arduino oled math, skripsi iot math game, ide proyek mikrokontroler edukasi, skematik game perkalian oled, diagram rangkaian encoder oled buzzer, source code game edukasi oled, program arduino oled math game, simulasi iot tanpa hardware, platform simulasi wokwi, wokwi arduino math game, alat permainan edukasi mikrokontroler, telemetry data oled screen, proyek sains elektro, portofolio mikrokontroler edukasi, praktikum arduino uno, modul oled ssd1306 i2c, pinout arduino oled encoder, indikator suara buzzer game, grafik menu oled, game digital edukasi mini, efisiensi pembelajaran matematika, panduan arduino oled display, belajar mikrokontroler online, simulator komponen elektronik oled, wokwi custom chip game, internet of things indonesia, iot smk teknik elektro, iot universitas teknik, prototipe game oled arduino, alat kuis perkalian otomatis, smart educational project, arduino ide programming, tutorial arduino pemula, proyek elektro game edukasi, panduan lengkap wokwi oled, sensor encoder putar akurat, sistem animasi menu oled, logika kuis perkalian bertingkat, notifikasi suara jingle game, sistem pembelajaran interaktif, otomatisasi game edukasi, proyek mekatronika elektro, simulasi hardware math game, sistem tebak angka arduino, proyek arduino populer, kodingan game edukasi otomatis, oled graphics library, rangkaian encoder dan oled, tutorial mikrokontroler pemula, wawasan teknik elektro, aplikasi oled display game, konsol game edukasi mini arduino, koding logika menu oled, pemantauan skor game real time, arduino game management system<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pada bagian ini akan dibahas pembuatan proyek game edukasi matematika interaktif (Educational Multiplication Game Device) berbasis mikrokontroler Arduino\/ESP32, layar OLED SSD1306 (128&#215;64 I2C), rotary encoder sebagai pengatur menu dan penambah\/pengurang nilai jawaban, buzzer efek suara (tone sukses, salah, dan alarm), lampu LED indikator, serta platform simulasi WOKWI. Skematik rangkaian ditunjukkan pada Gambar 1, program Arduino pada Kode 1, dan video&#8230;<\/p>\n","protected":false},"author":3,"featured_media":634,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[5],"tags":[],"_links":{"self":[{"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/posts\/632"}],"collection":[{"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/users\/3"}],"replies":[{"embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=632"}],"version-history":[{"count":1,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/posts\/632\/revisions"}],"predecessor-version":[{"id":635,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/posts\/632\/revisions\/635"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=\/wp\/v2\/media\/634"}],"wp:attachment":[{"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=632"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=632"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kuliahelektro.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=632"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}