[
  {
    "slug": "ta-koto-ga-aru",
    "pattern": "～たことがある",
    "structure": "Verb-ta + ことがある",
    "meaning_id": "pernah ~",
    "meaning_en": "have done before / have the experience of",
    "nuance": "Untuk pengalaman yang pernah dilakukan. Negatif: ～たことがない (belum pernah).",
    "jlpt_level": "N4",
    "category": "experience",
    "examples": [
      {
        "japanese": "日本へ行ったことがあります。",
        "furigana": "<ruby>日本<rt>にほん</rt></ruby>へ<ruby>行<rt>い</rt></ruby>ったことがあります。",
        "translation_id": "Saya pernah ke Jepang.",
        "translation_en": "I have been to Japan."
      }
    ]
  },
  {
    "slug": "koto-ga-dekiru",
    "pattern": "～ことができる",
    "structure": "Verb-dictionary + ことができる",
    "meaning_id": "bisa / dapat ~",
    "meaning_en": "be able to / can",
    "nuance": "Ekspresi kemampuan formal. Casual: bentuk potensial 〜られる/える.",
    "jlpt_level": "N4",
    "category": "ability",
    "examples": [
      {
        "japanese": "日本語を話すことができます。",
        "furigana": "<ruby>日本語<rt>にほんご</rt></ruby>を<ruby>話<rt>はな</rt></ruby>すことができます。",
        "translation_id": "Saya bisa berbahasa Jepang.",
        "translation_en": "I can speak Japanese."
      }
    ]
  },
  {
    "slug": "potential-form",
    "pattern": "可能形 (bentuk potensial)",
    "structure": "Verb → potensial (見る → 見られる, 書く → 書ける)",
    "meaning_id": "bisa / dapat ~",
    "meaning_en": "can / be able to",
    "nuance": "Untuk u-verb ganti う → える; ru-verb ganti る → られる. Suru → できる; Kuru → こられる.",
    "jlpt_level": "N4",
    "category": "ability",
    "examples": [
      {
        "japanese": "刺身が食べられますか。",
        "furigana": "<ruby>刺身<rt>さしみ</rt></ruby>が<ruby>食<rt>た</rt></ruby>べられますか。",
        "translation_id": "Bisakah Anda makan sashimi?",
        "translation_en": "Can you eat sashimi?"
      }
    ]
  },
  {
    "slug": "ageru",
    "pattern": "～てあげる",
    "structure": "Verb-te + あげる",
    "meaning_id": "melakukan ~ untuk (orang lain)",
    "meaning_en": "do ~ for someone (giver perspective)",
    "nuance": "Pelaku berbaik hati pada penerima. Hati-hati: bisa terdengar sombong; hindari di depan atasan.",
    "jlpt_level": "N4",
    "category": "giving-receiving",
    "examples": [
      {
        "japanese": "弟に本を読んであげました。",
        "furigana": "<ruby>弟<rt>おとうと</rt></ruby>に<ruby>本<rt>ほん</rt></ruby>を<ruby>読<rt>よ</rt></ruby>んであげました。",
        "translation_id": "Saya membacakan buku untuk adik.",
        "translation_en": "I read a book for my younger brother."
      }
    ]
  },
  {
    "slug": "kureru",
    "pattern": "～てくれる",
    "structure": "Verb-te + くれる",
    "meaning_id": "(seseorang) melakukan ~ untuk saya",
    "meaning_en": "someone does ~ for me",
    "nuance": "Pelaku adalah orang lain; penerima adalah saya/keluarga saya. Sopan: ～てくださる.",
    "jlpt_level": "N4",
    "category": "giving-receiving",
    "examples": [
      {
        "japanese": "友達が手伝ってくれました。",
        "furigana": "<ruby>友達<rt>ともだち</rt></ruby>が<ruby>手伝<rt>てつだ</rt></ruby>ってくれました。",
        "translation_id": "Teman saya membantu saya.",
        "translation_en": "My friend helped me."
      }
    ]
  },
  {
    "slug": "morau",
    "pattern": "～てもらう",
    "structure": "Verb-te + もらう",
    "meaning_id": "minta tolong ~ / menerima jasa ~",
    "meaning_en": "have someone do ~ for me",
    "nuance": "Saya yang menerima jasa, orang lain pelakunya. Sopan: ～ていただく.",
    "jlpt_level": "N4",
    "category": "giving-receiving",
    "examples": [
      {
        "japanese": "先生に教えてもらいました。",
        "furigana": "<ruby>先生<rt>せんせい</rt></ruby>に<ruby>教<rt>おし</rt></ruby>えてもらいました。",
        "translation_id": "Saya minta diajari oleh guru.",
        "translation_en": "I had the teacher teach me."
      }
    ]
  },
  {
    "slug": "passive-form",
    "pattern": "受身形 (bentuk pasif)",
    "structure": "Verb → passive (見る → 見られる, 書く → 書かれる)",
    "meaning_id": "di-~",
    "meaning_en": "to be ~ed",
    "nuance": "U-verb: う → あ-row + れる. Ru-verb: る → られる. Sering dipakai untuk 'pasif kerugian'.",
    "jlpt_level": "N4",
    "category": "passive",
    "examples": [
      {
        "japanese": "先生に褒められました。",
        "furigana": "<ruby>先生<rt>せんせい</rt></ruby>に<ruby>褒<rt>ほ</rt></ruby>められました。",
        "translation_id": "Saya dipuji oleh guru.",
        "translation_en": "I was praised by the teacher."
      }
    ]
  },
  {
    "slug": "causative-form",
    "pattern": "使役形 (bentuk kausatif)",
    "structure": "Verb → causative (見る → 見させる, 書く → 書かせる)",
    "meaning_id": "membuat / membiarkan (orang) ~",
    "meaning_en": "make / let someone ~",
    "nuance": "U-verb: う → あ-row + せる. Ru-verb: る → させる. Bisa berarti 'memaksa' atau 'mengizinkan'.",
    "jlpt_level": "N4",
    "category": "causative",
    "examples": [
      {
        "japanese": "母は私に野菜を食べさせました。",
        "furigana": "<ruby>母<rt>はは</rt></ruby>は<ruby>私<rt>わたし</rt></ruby>に<ruby>野菜<rt>やさい</rt></ruby>を<ruby>食<rt>た</rt></ruby>べさせました。",
        "translation_id": "Ibu menyuruh saya makan sayur.",
        "translation_en": "Mom made me eat vegetables."
      }
    ]
  },
  {
    "slug": "causative-passive",
    "pattern": "使役受身形 (kausatif-pasif)",
    "structure": "Verb → causative-passive (食べる → 食べさせられる)",
    "meaning_id": "disuruh / dipaksa ~",
    "meaning_en": "be made to ~",
    "nuance": "Pelaku terpaksa melakukan sesuatu karena disuruh.",
    "jlpt_level": "N4",
    "category": "causative",
    "examples": [
      {
        "japanese": "子供の時、野菜を食べさせられました。",
        "furigana": "<ruby>子供<rt>こども</rt></ruby>の<ruby>時<rt>とき</rt></ruby>、<ruby>野菜<rt>やさい</rt></ruby>を<ruby>食<rt>た</rt></ruby>べさせられました。",
        "translation_id": "Waktu kecil, saya dipaksa makan sayur.",
        "translation_en": "As a child, I was made to eat vegetables."
      }
    ]
  },
  {
    "slug": "volitional",
    "pattern": "意向形 (bentuk volisional)",
    "structure": "Verb → volitional (見る → 見よう, 書く → 書こう)",
    "meaning_id": "ayo ~ / mari ~ (kasual)",
    "meaning_en": "let's ~ / I'll ~",
    "nuance": "Bentuk biasa dari ましょう. Untuk diri sendiri = 'saya akan ~'.",
    "jlpt_level": "N4",
    "category": "volitional",
    "examples": [
      {
        "japanese": "今晩、映画を見よう。",
        "furigana": "<ruby>今晩<rt>こんばん</rt></ruby>、<ruby>映画<rt>えいが</rt></ruby>を<ruby>見<rt>み</rt></ruby>よう。",
        "translation_id": "Malam ini ayo nonton film.",
        "translation_en": "Let's watch a movie tonight."
      }
    ]
  },
  {
    "slug": "you-to-omou",
    "pattern": "～(よ)うと思う",
    "structure": "Volitional + と思う",
    "meaning_id": "saya berpikir akan ~ / berniat ~",
    "meaning_en": "I think I'll ~",
    "nuance": "Menyatakan niat. ～(よ)うと思っている = niat yang sudah lama dipikirkan.",
    "jlpt_level": "N4",
    "category": "intention",
    "examples": [
      {
        "japanese": "来年、留学しようと思います。",
        "furigana": "<ruby>来年<rt>らいねん</rt></ruby>、<ruby>留学<rt>りゅうがく</rt></ruby>しようと<ruby>思<rt>おも</rt></ruby>います。",
        "translation_id": "Tahun depan saya berniat belajar di luar negeri.",
        "translation_en": "I'm thinking of studying abroad next year."
      }
    ]
  },
  {
    "slug": "tsumori",
    "pattern": "～つもり",
    "structure": "Verb-dictionary / ない + つもりだ",
    "meaning_id": "berencana / berniat ~",
    "meaning_en": "intend to ~",
    "nuance": "Rencana yang sudah lebih pasti dari ようと思う. Negatif: ～ないつもり.",
    "jlpt_level": "N4",
    "category": "intention",
    "examples": [
      {
        "japanese": "夏休みに国へ帰るつもりです。",
        "furigana": "<ruby>夏休み<rt>なつやすみ</rt></ruby>に<ruby>国<rt>くに</rt></ruby>へ<ruby>帰<rt>かえ</rt></ruby>るつもりです。",
        "translation_id": "Saya berencana pulang ke negara asal saat libur musim panas.",
        "translation_en": "I plan to return home over summer vacation."
      }
    ]
  },
  {
    "slug": "yotei",
    "pattern": "～予定",
    "structure": "Verb-dictionary / Noun-no + 予定だ",
    "meaning_id": "ada rencana ~ / dijadwalkan ~",
    "meaning_en": "be scheduled / planned to ~",
    "nuance": "Lebih objektif/terjadwal dibanding つもり.",
    "jlpt_level": "N4",
    "category": "intention",
    "examples": [
      {
        "japanese": "明日、会議に出る予定です。",
        "furigana": "<ruby>明日<rt>あした</rt></ruby>、<ruby>会議<rt>かいぎ</rt></ruby>に<ruby>出<rt>で</rt></ruby>る<ruby>予定<rt>よてい</rt></ruby>です。",
        "translation_id": "Besok saya dijadwalkan ikut rapat.",
        "translation_en": "I'm scheduled to attend a meeting tomorrow."
      }
    ]
  },
  {
    "slug": "hou-ga-ii",
    "pattern": "～ほうがいい",
    "structure": "Verb-ta / Verb-nai + ほうがいい",
    "meaning_id": "sebaiknya ~",
    "meaning_en": "you'd better / it's better to ~",
    "nuance": "Memberi saran. Bentuk lampau ～たほうがいい lebih kuat/mendesak.",
    "jlpt_level": "N4",
    "category": "advice",
    "examples": [
      {
        "japanese": "早く寝たほうがいいですよ。",
        "furigana": "<ruby>早<rt>はや</rt></ruby>く<ruby>寝<rt>ね</rt></ruby>たほうがいいですよ。",
        "translation_id": "Sebaiknya kamu tidur cepat.",
        "translation_en": "You should sleep early."
      }
    ]
  },
  {
    "slug": "tame-ni-purpose",
    "pattern": "～ために (tujuan)",
    "structure": "Verb-dictionary / Noun-no + ために",
    "meaning_id": "demi / untuk ~",
    "meaning_en": "in order to / for the sake of",
    "nuance": "Tujuan yang disengaja. Subjek dua klausa harus sama.",
    "jlpt_level": "N4",
    "category": "purpose",
    "examples": [
      {
        "japanese": "健康のために運動しています。",
        "furigana": "<ruby>健康<rt>けんこう</rt></ruby>のために<ruby>運動<rt>うんどう</rt></ruby>しています。",
        "translation_id": "Saya berolahraga demi kesehatan.",
        "translation_en": "I exercise for my health."
      }
    ]
  },
  {
    "slug": "you-ni-purpose",
    "pattern": "～ように (supaya)",
    "structure": "Verb-dictionary / Verb-nai + ように",
    "meaning_id": "supaya / agar ~",
    "meaning_en": "so that / in order to",
    "nuance": "Tujuan tak disengaja (bisa, mengerti, tidak lupa, dll). Subjek bisa berbeda.",
    "jlpt_level": "N4",
    "category": "purpose",
    "examples": [
      {
        "japanese": "忘れないように、メモを書きます。",
        "furigana": "<ruby>忘<rt>わす</rt></ruby>れないように、メモを<ruby>書<rt>か</rt></ruby>きます。",
        "translation_id": "Saya menulis catatan supaya tidak lupa.",
        "translation_en": "I write notes so I won't forget."
      }
    ]
  },
  {
    "slug": "you-ni-naru",
    "pattern": "～ようになる",
    "structure": "Verb-dictionary / potential + ようになる",
    "meaning_id": "menjadi bisa ~ / mulai ~",
    "meaning_en": "come to / become able to",
    "nuance": "Perubahan dari tidak bisa ke bisa, atau munculnya kebiasaan baru.",
    "jlpt_level": "N4",
    "category": "change",
    "examples": [
      {
        "japanese": "漢字が読めるようになりました。",
        "furigana": "<ruby>漢字<rt>かんじ</rt></ruby>が<ruby>読<rt>よ</rt></ruby>めるようになりました。",
        "translation_id": "Saya jadi bisa membaca kanji.",
        "translation_en": "I've become able to read kanji."
      }
    ]
  },
  {
    "slug": "you-ni-suru",
    "pattern": "～ようにする",
    "structure": "Verb-dictionary / Verb-nai + ようにする",
    "meaning_id": "berusaha untuk ~ / membiasakan diri ~",
    "meaning_en": "make an effort to / try to",
    "nuance": "Usaha yang disengaja. Lampau: ～ようにした(menjadikan begitu).",
    "jlpt_level": "N4",
    "category": "effort",
    "examples": [
      {
        "japanese": "毎日運動するようにしています。",
        "furigana": "<ruby>毎日運動<rt>まいにちうんどう</rt></ruby>するようにしています。",
        "translation_id": "Saya berusaha berolahraga setiap hari.",
        "translation_en": "I try to exercise every day."
      }
    ]
  },
  {
    "slug": "te-miru",
    "pattern": "～てみる",
    "structure": "Verb-te + みる",
    "meaning_id": "mencoba ~",
    "meaning_en": "try doing ~",
    "nuance": "Mencoba sesuatu untuk pertama kali / melihat hasilnya.",
    "jlpt_level": "N4",
    "category": "attempt",
    "examples": [
      {
        "japanese": "新しいレストランで食べてみます。",
        "furigana": "<ruby>新<rt>あたら</rt></ruby>しいレストランで<ruby>食<rt>た</rt></ruby>べてみます。",
        "translation_id": "Saya akan coba makan di restoran baru.",
        "translation_en": "I'll try eating at the new restaurant."
      }
    ]
  },
  {
    "slug": "te-oku",
    "pattern": "～ておく",
    "structure": "Verb-te + おく",
    "meaning_id": "melakukan ~ terlebih dahulu (sebagai persiapan)",
    "meaning_en": "do ~ in advance",
    "nuance": "Persiapan. Bentuk kasual: ～とく (例: 買っとく).",
    "jlpt_level": "N4",
    "category": "preparation",
    "examples": [
      {
        "japanese": "旅行の前に、ホテルを予約しておきます。",
        "furigana": "<ruby>旅行<rt>りょこう</rt></ruby>の<ruby>前<rt>まえ</rt></ruby>に、ホテルを<ruby>予約<rt>よやく</rt></ruby>しておきます。",
        "translation_id": "Sebelum perjalanan, saya akan pesan hotel terlebih dahulu.",
        "translation_en": "I'll book the hotel before the trip."
      }
    ]
  },
  {
    "slug": "te-shimau",
    "pattern": "～てしまう",
    "structure": "Verb-te + しまう",
    "meaning_id": "(tak sengaja) ~ / selesai ~ / terlanjur ~",
    "meaning_en": "end up ~ / finish ~ (often with regret)",
    "nuance": "Penyesalan atau penyelesaian. Casual: ～ちゃう / ～じゃう.",
    "jlpt_level": "N4",
    "category": "completion",
    "examples": [
      {
        "japanese": "傘を電車に忘れてしまいました。",
        "furigana": "<ruby>傘<rt>かさ</rt></ruby>を<ruby>電車<rt>でんしゃ</rt></ruby>に<ruby>忘<rt>わす</rt></ruby>れてしまいました。",
        "translation_id": "Saya tertinggal payung di kereta.",
        "translation_en": "I accidentally left my umbrella on the train."
      }
    ]
  },
  {
    "slug": "te-iku",
    "pattern": "～ていく",
    "structure": "Verb-te + いく",
    "meaning_id": "menjadi semakin ~ (ke arah masa depan) / pergi sambil ~",
    "meaning_en": "go on / continue ~",
    "nuance": "Perubahan ke depan or gerakan menjauh dari pembicara.",
    "jlpt_level": "N4",
    "category": "direction",
    "examples": [
      {
        "japanese": "これから寒くなっていきます。",
        "furigana": "これから<ruby>寒<rt>さむ</rt></ruby>くなっていきます。",
        "translation_id": "Mulai sekarang akan semakin dingin.",
        "translation_en": "It will get colder from now."
      }
    ]
  },
  {
    "slug": "te-kuru",
    "pattern": "～てくる",
    "structure": "Verb-te + くる",
    "meaning_id": "(perubahan sampai sekarang) / pergi & kembali",
    "meaning_en": "have come to / come back having done",
    "nuance": "Perubahan dari masa lalu sampai sekarang, atau pergi melakukan sesuatu lalu kembali.",
    "jlpt_level": "N4",
    "category": "direction",
    "examples": [
      {
        "japanese": "日本語が少し分かってきました。",
        "furigana": "<ruby>日本語<rt>にほんご</rt></ruby>が<ruby>少<rt>すこ</rt></ruby>し<ruby>分<rt>わ</rt></ruby>かってきました。",
        "translation_id": "Saya mulai sedikit mengerti bahasa Jepang.",
        "translation_en": "I've come to understand Japanese a little."
      }
    ]
  },
  {
    "slug": "tari-tari",
    "pattern": "～たり~たりする",
    "structure": "Verb-ta + り + Verb-ta + り + する",
    "meaning_id": "(antara lain) ~ dan ~",
    "meaning_en": "doing things like ~ and ~",
    "nuance": "Menyebutkan beberapa contoh aktivitas, bukan daftar lengkap.",
    "jlpt_level": "N4",
    "category": "listing",
    "examples": [
      {
        "japanese": "週末は本を読んだり、映画を見たりします。",
        "furigana": "<ruby>週末<rt>しゅうまつ</rt></ruby>は<ruby>本<rt>ほん</rt></ruby>を<ruby>読<rt>よ</rt></ruby>んだり、<ruby>映画<rt>えいが</rt></ruby>を<ruby>見<rt>み</rt></ruby>たりします。",
        "translation_id": "Akhir pekan saya membaca buku, menonton film, dll.",
        "translation_en": "On weekends I read books, watch movies, and so on."
      }
    ]
  },
  {
    "slug": "to-omou",
    "pattern": "～と思う",
    "structure": "Plain-form + と思う",
    "meaning_id": "saya pikir / kupikir ~",
    "meaning_en": "I think (that) ~",
    "nuance": "Pikiran pribadi. Untuk pikiran orang lain: ～と思っている.",
    "jlpt_level": "N4",
    "category": "reported-thought",
    "examples": [
      {
        "japanese": "この映画は面白いと思います。",
        "furigana": "この<ruby>映画<rt>えいが</rt></ruby>は<ruby>面白<rt>おもしろ</rt></ruby>いと<ruby>思<rt>おも</rt></ruby>います。",
        "translation_id": "Saya pikir film ini menarik.",
        "translation_en": "I think this movie is interesting."
      }
    ]
  },
  {
    "slug": "to-iu",
    "pattern": "～と言う / と言っていた",
    "structure": "Plain-form + と言う / と言っていた",
    "meaning_id": "berkata ~ / katanya ~",
    "meaning_en": "say (that) ~",
    "nuance": "Reported speech. と言っていた untuk laporan dari orang ketiga.",
    "jlpt_level": "N4",
    "category": "reported-speech",
    "examples": [
      {
        "japanese": "彼は明日来ると言いました。",
        "furigana": "<ruby>彼<rt>かれ</rt></ruby>は<ruby>明日来<rt>あしたく</rt></ruby>ると<ruby>言<rt>い</rt></ruby>いました。",
        "translation_id": "Dia berkata akan datang besok.",
        "translation_en": "He said he would come tomorrow."
      }
    ]
  },
  {
    "slug": "to-iu-noun",
    "pattern": "～という (Noun)",
    "structure": "Noun / Plain-form + という + Noun",
    "meaning_id": "yang bernama / yang disebut ~",
    "meaning_en": "called / named ~",
    "nuance": "Menamai atau mendefinisikan sesuatu untuk pendengar yang belum kenal.",
    "jlpt_level": "N4",
    "category": "definition",
    "examples": [
      {
        "japanese": "「ドラえもん」というアニメを知っていますか。",
        "furigana": "「ドラえもん」というアニメを<ruby>知<rt>し</rt></ruby>っていますか。",
        "translation_id": "Apakah Anda tahu anime bernama Doraemon?",
        "translation_en": "Do you know the anime called Doraemon?"
      }
    ]
  },
  {
    "slug": "kamoshirenai",
    "pattern": "～かもしれない",
    "structure": "Plain-form + かもしれない",
    "meaning_id": "mungkin ~",
    "meaning_en": "might / maybe ~",
    "nuance": "Probabilitas rendah-sedang. Sopan: ～かもしれません.",
    "jlpt_level": "N4",
    "category": "probability",
    "examples": [
      {
        "japanese": "明日は雨が降るかもしれません。",
        "furigana": "<ruby>明日<rt>あした</rt></ruby>は<ruby>雨<rt>あめ</rt></ruby>が<ruby>降<rt>ふ</rt></ruby>るかもしれません。",
        "translation_id": "Besok mungkin hujan.",
        "translation_en": "It might rain tomorrow."
      }
    ]
  },
  {
    "slug": "deshou",
    "pattern": "～でしょう",
    "structure": "Plain-form + でしょう",
    "meaning_id": "mungkin ~ / kan? (konfirmasi)",
    "meaning_en": "probably / right?",
    "nuance": "Lebih yakin dari かもしれない. Dengan intonasi naik = konfirmasi.",
    "jlpt_level": "N4",
    "category": "probability",
    "examples": [
      {
        "japanese": "彼は来るでしょう。",
        "furigana": "<ruby>彼<rt>かれ</rt></ruby>は<ruby>来<rt>く</rt></ruby>るでしょう。",
        "translation_id": "Dia mungkin akan datang.",
        "translation_en": "He'll probably come."
      }
    ]
  },
  {
    "slug": "hazu",
    "pattern": "～はず",
    "structure": "Plain-form + はず",
    "meaning_id": "seharusnya ~ (sesuai logika/ekspektasi)",
    "meaning_en": "supposed to / should be",
    "nuance": "Berdasarkan logika atau informasi yang dimiliki. Bukan kewajiban.",
    "jlpt_level": "N4",
    "category": "expectation",
    "examples": [
      {
        "japanese": "彼は今日来るはずです。",
        "furigana": "<ruby>彼<rt>かれ</rt></ruby>は<ruby>今日来<rt>きょうく</rt></ruby>るはずです。",
        "translation_id": "Dia seharusnya datang hari ini.",
        "translation_en": "He is supposed to come today."
      }
    ]
  },
  {
    "slug": "you-da-conjecture",
    "pattern": "～ようだ",
    "structure": "Plain-form / na-adj-na / Noun-no + ようだ",
    "meaning_id": "sepertinya / kayaknya ~",
    "meaning_en": "it seems / appears",
    "nuance": "Dugaan berdasarkan pengamatan langsung pembicara.",
    "jlpt_level": "N4",
    "category": "conjecture",
    "examples": [
      {
        "japanese": "誰かいるようです。",
        "furigana": "<ruby>誰<rt>だれ</rt></ruby>かいるようです。",
        "translation_id": "Sepertinya ada seseorang.",
        "translation_en": "It seems someone is there."
      }
    ]
  },
  {
    "slug": "sou-da-appearance",
    "pattern": "～そうだ (penampilan)",
    "structure": "Verb-stem / i-adj (drop い) / na-adj + そうだ",
    "meaning_id": "kelihatannya ~",
    "meaning_en": "looks ~ / seems ~ (visual)",
    "nuance": "Berdasarkan penampilan visual. 良い → よさそう, 無い → なさそう (irreguler).",
    "jlpt_level": "N4",
    "category": "conjecture",
    "examples": [
      {
        "japanese": "このケーキは美味しそうです。",
        "furigana": "このケーキは<ruby>美味<rt>おい</rt></ruby>しそうです。",
        "translation_id": "Kue ini kelihatannya enak.",
        "translation_en": "This cake looks delicious."
      }
    ]
  },
  {
    "slug": "sou-da-hearsay",
    "pattern": "～そうだ (kabar)",
    "structure": "Plain-form + そうだ",
    "meaning_id": "katanya / kabarnya ~",
    "meaning_en": "I heard / they say",
    "nuance": "Informasi dari pihak lain. Bedakan bentuk dari そうだ penampilan.",
    "jlpt_level": "N4",
    "category": "hearsay",
    "examples": [
      {
        "japanese": "明日は雪が降るそうです。",
        "furigana": "<ruby>明日<rt>あした</rt></ruby>は<ruby>雪<rt>ゆき</rt></ruby>が<ruby>降<rt>ふ</rt></ruby>るそうです。",
        "translation_id": "Katanya besok turun salju.",
        "translation_en": "I heard it will snow tomorrow."
      }
    ]
  },
  {
    "slug": "rashii",
    "pattern": "～らしい",
    "structure": "Plain-form / Noun + らしい",
    "meaning_id": "sepertinya ~ (berdasarkan info eksternal)",
    "meaning_en": "it seems / apparently",
    "nuance": "Dugaan berdasarkan info yang didengar. Juga 'khas ~' (例: 男らしい).",
    "jlpt_level": "N4",
    "category": "conjecture",
    "examples": [
      {
        "japanese": "彼は結婚するらしいです。",
        "furigana": "<ruby>彼<rt>かれ</rt></ruby>は<ruby>結婚<rt>けっこん</rt></ruby>するらしいです。",
        "translation_id": "Sepertinya dia akan menikah.",
        "translation_en": "Apparently he's going to get married."
      }
    ]
  },
  {
    "slug": "ba-conditional",
    "pattern": "～ば",
    "structure": "Verb-e-form / i-adj (drop い) + ければ + ...",
    "meaning_id": "kalau ~ (kondisional umum)",
    "meaning_en": "if ~ (general condition)",
    "nuance": "Kondisional formal/tertulis. Tidak bisa dipakai sebelum perintah/saran.",
    "jlpt_level": "N4",
    "category": "conditional",
    "examples": [
      {
        "japanese": "時間があれば、来てください。",
        "furigana": "<ruby>時間<rt>じかん</rt></ruby>があれば、<ruby>来<rt>き</rt></ruby>てください。",
        "translation_id": "Kalau punya waktu, silakan datang.",
        "translation_en": "If you have time, please come."
      }
    ]
  },
  {
    "slug": "nara",
    "pattern": "～なら",
    "structure": "Noun / Plain-form + なら",
    "meaning_id": "kalau (topik yang diangkat lawan bicara) ~",
    "meaning_en": "if it's (the topic of) ~",
    "nuance": "Memberi saran berdasarkan topik yang baru disebut lawan bicara.",
    "jlpt_level": "N4",
    "category": "conditional",
    "examples": [
      {
        "japanese": "日本へ行くなら、京都がいいですよ。",
        "furigana": "<ruby>日本<rt>にほん</rt></ruby>へ<ruby>行<rt>い</rt></ruby>くなら、<ruby>京都<rt>きょうと</rt></ruby>がいいですよ。",
        "translation_id": "Kalau ke Jepang, Kyoto bagus lho.",
        "translation_en": "If you're going to Japan, Kyoto is great."
      }
    ]
  },
  {
    "slug": "ka-dou-ka",
    "pattern": "～かどうか",
    "structure": "Plain-form + かかどうか",
    "meaning_id": "apakah ~ atau tidak",
    "meaning_en": "whether or not ~",
    "nuance": "Klausa subordinat sebelum 知る/分かる/確かめる, dll.",
    "jlpt_level": "N4",
    "category": "embedded-question",
    "examples": [
      {
        "japanese": "彼が来るかどうか分かりません。",
        "furigana": "<ruby>彼<rt>かれ</rt></ruby>が<ruby>来<rt>く</rt></ruby>るかどうか<ruby>分<rt>わ</rt></ruby>かりません。",
        "translation_id": "Saya tidak tahu apakah dia datang atau tidak.",
        "translation_en": "I don't know whether he is coming."
      }
    ]
  },
  {
    "slug": "ka-embedded",
    "pattern": "～か (pertanyaan tersisip)",
    "structure": "Question-word + Plain + か",
    "meaning_id": "(siapa/apa/kapan...) ~",
    "meaning_en": "embedded wh-question",
    "nuance": "Pertanyaan tersisip dalam kalimat utama.",
    "jlpt_level": "N4",
    "category": "embedded-question",
    "examples": [
      {
        "japanese": "彼がどこに住んでいるか知っていますか。",
        "furigana": "<ruby>彼<rt>かれ</rt></ruby>がどこに<ruby>住<rt>す</rt></ruby>んでいるか<ruby>知<rt>し</rt></ruby>っていますか。",
        "translation_id": "Apakah Anda tahu di mana dia tinggal?",
        "translation_en": "Do you know where he lives?"
      }
    ]
  },
  {
    "slug": "mama",
    "pattern": "～まま",
    "structure": "Verb-ta / Noun-no / na-adj-na + まま",
    "meaning_id": "(dalam keadaan) ~",
    "meaning_en": "in the state of ~ / as it is",
    "nuance": "Keadaan yang dipertahankan/tidak diubah.",
    "jlpt_level": "N4",
    "category": "state",
    "examples": [
      {
        "japanese": "靴を履いたまま部屋に入った。",
        "furigana": "<ruby>靴<rt>くつ</rt></ruby>を<ruby>履<rt>は</rt></ruby>いたまま<ruby>部屋<rt>へや</rt></ruby>に<ruby>入<rt>はい</rt></ruby>った。",
        "translation_id": "Saya masuk ke kamar dengan tetap memakai sepatu.",
        "translation_en": "I entered the room with my shoes on."
      }
    ]
  },
  {
    "slug": "mae-ni",
    "pattern": "～前に",
    "structure": "Verb-dictionary / Noun-no + 前に",
    "meaning_id": "sebelum ~",
    "meaning_en": "before ~",
    "nuance": "Untuk Verb gunakan bentuk kamus, bukan -ta.",
    "jlpt_level": "N4",
    "category": "time",
    "examples": [
      {
        "japanese": "寝る前に、歯を磨きます。",
        "furigana": "<ruby>寝<rt>ね</rt></ruby>る<ruby>前<rt>まえ</rt></ruby>に、<ruby>歯<rt>は</rt></ruby>を<ruby>磨<rt>みが</rt></ruby>きます。",
        "translation_id": "Sebelum tidur saya menyikat gigi.",
        "translation_en": "Before sleeping, I brush my teeth."
      }
    ]
  },
  {
    "slug": "ato-de",
    "pattern": "～後で / 後",
    "structure": "Verb-ta / Noun-no + 後で",
    "meaning_id": "setelah ~",
    "meaning_en": "after ~",
    "nuance": "Untuk Verb gunakan bentuk -ta.",
    "jlpt_level": "N4",
    "category": "time",
    "examples": [
      {
        "japanese": "ご飯を食べた後で、散歩します。",
        "furigana": "ご<ruby>飯<rt>はん</rt></ruby>を<ruby>食<rt>た</rt></ruby>べた<ruby>後<rt>あと</rt></ruby>で、<ruby>散歩<rt>さんぽ</rt></ruby>します。",
        "translation_id": "Setelah makan, saya jalan-jalan.",
        "translation_en": "After eating, I take a walk."
      }
    ]
  },
  {
    "slug": "toki",
    "pattern": "～時",
    "structure": "Plain-form + 時",
    "meaning_id": "saat / ketika ~",
    "meaning_en": "when ~",
    "nuance": "Verb-dictionary 時 = sebelum/saat aksi; Verb-ta 時 = setelah aksi.",
    "jlpt_level": "N4",
    "category": "time",
    "examples": [
      {
        "japanese": "子供の時、よく公園で遊びました。",
        "furigana": "<ruby>子供<rt>こども</rt></ruby>の<ruby>時<rt>とき</rt></ruby>、よく<ruby>公園<rt>こうえん</rt></ruby>で<ruby>遊<rt>あそ</rt></ruby>びました。",
        "translation_id": "Saat masih anak-anak, saya sering bermain di taman.",
        "translation_en": "When I was a child, I often played in the park."
      }
    ]
  },
  {
    "slug": "nagara",
    "pattern": "～ながら",
    "structure": "Verb-stem + ながら",
    "meaning_id": "sambil ~",
    "meaning_en": "while ~",
    "nuance": "Dua aksi dilakukan bersamaan oleh subjek yang sama. Aksi utama biasanya yang kedua.",
    "jlpt_level": "N4",
    "category": "simultaneous",
    "examples": [
      {
        "japanese": "音楽を聴きながら勉強します。",
        "furigana": "<ruby>音楽<rt>おんがく</rt></ruby>を<ruby>聴<rt>き</rt></ruby>きながら<ruby>勉強<rt>べんきょう</rt></ruby>します。",
        "translation_id": "Saya belajar sambil mendengarkan musik.",
        "translation_en": "I study while listening to music."
      }
    ]
  },
  {
    "slug": "sugiru",
    "pattern": "～すぎる",
    "structure": "Verb-stem / adj (drop い/な) + すぎる",
    "meaning_id": "terlalu ~",
    "meaning_en": "too ~",
    "nuance": "Konjugasi seperti ru-verb. Negatif: すぎない.",
    "jlpt_level": "N4",
    "category": "degree",
    "examples": [
      {
        "japanese": "昨日は食べすぎました。",
        "furigana": "<ruby>昨日<rt>きのう</rt></ruby>は<ruby>食<rt>た</rt></ruby>べすぎました。",
        "translation_id": "Kemarin saya makan terlalu banyak.",
        "translation_en": "I ate too much yesterday."
      }
    ]
  },
  {
    "slug": "yasui",
    "pattern": "～やすい",
    "structure": "Verb-stem + やすい",
    "meaning_id": "mudah ~ (dilakukan)",
    "meaning_en": "easy to ~",
    "nuance": "Konjugasi seperti i-adjective. Lawan: にくい.",
    "jlpt_level": "N4",
    "category": "degree",
    "examples": [
      {
        "japanese": "このペンは書きやすいです。",
        "furigana": "このペンは<ruby>書<rt>か</rt></ruby>きやすいです。",
        "translation_id": "Pena ini mudah dipakai menulis.",
        "translation_en": "This pen is easy to write with."
      }
    ]
  }
]
