One of the first things I tried to do when learning Indonesian was find the tenses. Past tense, future tense, present continuous. Where are they? English has them, Spanish has them, even Mandarin has aspect markers that do something similar. Indonesian just... doesn't. Not in the way you expect.

I kept asking the wrong question. Instead of "how do I say I ate versus I eat," I should have been asking what Indonesian actually wants to tell you about an action: is it done, or isn't it yet, or is it still happening, or is it happening again? Those are different questions, and Indonesian has a specific word for each answer.

Sudah: the word that means done

"Sudah" means already, or more precisely: completed. When you put it before a verb, you're saying the action is finished.

"Saya makan" means I eat, I am eating, I was eating, I will eat. Context handles which one. "Saya sudah makan" means I have already eaten, regardless of when. The tense is irrelevant. What matters is that it's done.

This comes up constantly. "Sudah makan?" (Already eaten?) is probably the most common greeting I hear in Indonesia after "halo." It's less a literal question about food and more a warm check-in, the equivalent of "how are you doing." The correct answer is either "sudah" (done, I'm good) or "belum" (not yet). Which brings us to the interesting one.

Belum: the word that implies eventual completion

"Belum" means not yet, and that "yet" is doing a lot of work.

When you say "belum," you're not just saying no. You're saying no, but I expect to. The implication is that it will happen. "Belum makan" doesn't just mean I haven't eaten; it means I haven't eaten yet, with a built-in assumption that eating is still on the agenda.

The contrast with "tidak" (just no) is one of those things that seems minor but changes meaning significantly. "Saya tidak makan" means I don't eat this, or I'm not eating, with no particular expectation either way. "Saya belum makan" means I haven't eaten yet and presumably will. One word choice, completely different subtext.

I've seen this confuse people in both directions. Foreigners use "tidak" when they mean "belum" and end up sounding like they're refusing something rather than just not having done it yet. Indonesians sometimes interpret "tidak" as a firmer refusal than intended. If someone offers you food and you say "tidak" instead of "belum," you might come across as rude when you were just saying you hadn't eaten yet.

Masih: the ongoing situation

"Masih" means still. As in, the action or state continues.

"Masih makan" means still eating. "Masih di Jakarta" means still in Jakarta. "Masih belajar" means still studying. Simple enough in isolation, but it pairs with "belum" in ways that take a while to internalize.

"Masih belum" means still not yet. If you're waiting for something that hasn't happened, and you want to emphasize the ongoing wait, this is your phrase. "Masih belum datang" means still hasn't arrived. It's more emphatic than just "belum," carrying the weight of expectation plus the frustration (or patience) of continued waiting.

"Sudah" and "masih" are natural opposites. "Sudah selesai?" (Done yet?) gets the answer "sudah" or "masih" (still going). Once you get used to this pattern, it starts feeling more natural than English's clunky tense changes.

Lagi: the one that means again, except when it doesn't

"Lagi" technically means again, or more. "Makan lagi" means eat again. "Mau lagi?" means want more?

But in casual Jakarta speech, "lagi" also means currently doing something. "Lagi makan" doesn't always mean eating again; it often means eating right now, at this moment. This is technically bahasa gaul but it's so widespread it barely counts as slang anymore. If someone texts you "lagi apa?" (lagi what?), they're asking what you're up to right now, not what you're doing again.

This second use of "lagi" overlaps somewhat with "sedang," which is the more formal word for currently. "Sedang makan" means in the process of eating, right now. You'll see "sedang" in news articles and formal speech. In conversation, people use "lagi" instead, or often just drop it entirely and rely on context. Casual Indonesian drops a lot of things textbooks consider mandatory.

How they work together

These words follow the same logic as Indonesian particles: they modify the sentence around them, adding a layer of meaning without changing the core verb. And they stack in predictable ways.

"Sudah" and "belum" are the most common pair. Questions often assume one or the other as the answer: "Sudah selesai?" expects yes or not yet. "Sudah" alone as a response means yes, done. "Belum" means no, not yet.

"Masih" sits between them. If "sudah" is done and "belum" is not done but expected, "masih" is the in-between: it's still happening, it's ongoing, it hasn't resolved yet in either direction.

One thing that surprised me: "sudah" can also mean "okay, enough" or "let's move on." "Sudah lah" (enough already) is how you dismiss something you don't want to dwell on. It's the same word, just used for the idea of completion applied to a conversation rather than an action. Once I noticed this, I started seeing "sudah" functioning as a kind of emotional full stop in conversation, not just a factual report on task completion.

What about actual future and past?

Indonesian does have ways to specify time more precisely. "Kemarin" (yesterday), "tadi" (earlier today), "nanti" (later), "besok" (tomorrow). You can use these alongside aspect markers: "Kemarin sudah makan" means yesterday I already ate. The time word anchors when, the aspect marker says whether it happened.

"Akan" is the formal future marker, the closest thing Indonesian has to a future tense. "Akan pergi" means will go. In casual speech it gets replaced by "mau" (want/going to) or just dropped. "Besok pergi" (tomorrow go) works fine without any marker at all.

The effect is that Indonesian sentences often feel more present and immediate than English ones. You're not conjugating verbs into temporal positions; you're commenting on the state of actions. It takes some adjustment to stop reaching for tenses and start reaching for these state words instead. The sentence structure is different enough from English that some rewiring is involved.

Where this breaks down

The honest complication: this system works cleanly in conversations about concrete actions, but gets messier with abstract or habitual things.

If you want to say you used to do something regularly (imperfect tense in Romance languages), Indonesian handles this awkwardly. "Dulu" (formerly, in the past) helps: "Dulu saya sering makan di situ" means I used to eat there a lot. But there's no single elegant word that captures the habitual past the way Spanish's imperfect tense does. You piece it together from context clues.

Similarly, expressing things like "by the time you arrive, I will have already eaten" (future perfect in English) requires some verbal gymnastics in Indonesian. It's doable but it's not elegant. The aspect system is built for the present moment and near future. Deep time relationships need more words to express.

That said, most conversations don't involve deep time relationships. Most conversations involve things that are happening, things that are done, and things that haven't happened yet. For those, the five words above cover almost everything.

If you want to practise this with real examples in context, try working through actual Indonesian sentences where these markers come up naturally. Seeing them in use is faster than memorising rules. Check out our plans if you want structured practice, or start practising Indonesian straight away.

The aspect marker system is one of those things that makes Indonesian feel genuinely different from European languages, not just a relabelled version of the same grammar. Once it clicks, though, it feels almost more intuitive than tenses. You're describing the state of things, not filing them into temporal categories. That turns out to be a reasonable way to talk about the world.