Ask an Indonesian to say empat and then enak, and listen to the first letter of each. Same vowel on the page. Two completely different sounds coming out of their mouth.
This is the one genuinely awkward corner of Indonesian pronunciation, and it feels awkward precisely because everything else behaves so well. The alphabet is Latin. The 1972 spelling reform tidied up most of the Dutch leftovers, so tjinta became cinta and oentoek became untuk. With a small handful of exceptions, a letter does what it says on the page. And then there is e, which does two entirely different jobs and gives you no clue which one it is doing.
The two e's
The first e is the one English speakers expect. Roughly the vowel in "bed", or the é in "café". You hear it in enak (delicious), meja (table), merah (red), desa (village), es (ice), tempe.
The second is a schwa, that vague unstressed vowel English uses at the start of "about" or the end of "sofa". It turns up in empat (four), enam (six), emas (gold), besar (big), kecil (small), kertas (paper), pedas (spicy), belum (not yet), and the second word of terima kasih.
Both are written e. Nothing in the spelling separates them. KBBI, the official dictionary, does mark the difference with diacritics inside its entries, but you will never see those diacritics on a menu, a road sign, a WhatsApp message, or in most learner material.
The word that made this click for me was sepeda (bicycle), because it contains both. The first syllable is a schwa, the second is the café vowel, and the third is a plain a: sə-PÉ-da. Say it with two café vowels and it comes out as something no Indonesian would produce, though everyone will still hand you a bicycle.
There is at least one proper minimal pair. Apel with a schwa in the second syllable is an apple. Apel with the café vowel, stressed on that second syllable, is a roll call or assembly, the sort schools and government offices hold on Monday mornings. Same five letters, two unrelated words, and only your ears to tell you which one someone meant.
Guessing when you don't know
I would love to give you a rule here. There isn't a reliable one. There are tendencies: the schwa is very common in the first syllable of ordinary two-syllable native words, which is why besar, kecil, berat, penuh, lebar and bersih all start the same way. The café vowel shows up more often in final syllables and in words borrowed from elsewhere, which is how you get tempe, ember, sate and bebek. But there are enough counterexamples that you end up learning it word by word, the way you learn which English words have a silent letter.
The good news is that the cost of getting it wrong is low. Say bésar instead of bəsar and nobody will misunderstand you. They will hear a foreigner, but they will hear a foreigner asking for a big one. Nothing breaks. This is worth knowing because learners sometimes freeze up over a distinction that carries almost no meaning load. It is a texture thing, not a comprehension thing.
The reason to bother anyway is that it is one of the fastest ways to stop sounding like you learned the language from a book. Fix the schwa in twenty common words and your Indonesian will sound noticeably more local, even with a small vocabulary.
The k that isn't really a k
At the end of a word, k stops being a k. It becomes a glottal stop, the little catch in the throat that a Londoner puts in the middle of "butter". So tidak is closer to "tida'" than "tidak". Anak, bapak, masak, duduk, becak: the same everywhere. The tongue never touches the back of the mouth.
English speakers tend to release that final k hard, and it is one of the more audible tells. It also explains a spelling you will see constantly in casual writing. Tidak reduces to nggak, or gak, or ga, and the reason those all sound related is that the final consonant was barely there in the first place. There is more on that in the post about tidak versus nggak, which covers when each form is appropriate.
Consonants that mean something else
A few letters have values that will trip you up if you read them as English. C is always "ch", so cari is "chari", cinta is "chinta", kecil is "kəchil". J is always the j in "jam". Sy is "sh", as in syukur. Ny is the Spanish ñ, so nyamuk (mosquito) starts the way "canyon" continues.
Then ng, which is the sound in "singer" and never the sound in "finger". Dengan is "də-ngan", not "deng-gan". Bangun, jangan, dengar: no hard g creeping in. The harder version is ng at the start of a word, which English simply never does. Bali's airport is Ngurah Rai. The negation everyone actually uses is nggak. The trick that worked for me was saying "singer" slowly and then chopping off the "si" while holding the rest.
The puff of air nobody mentions
Hold your palm in front of your mouth and say "Peter, take, cat". You will feel three little bursts of air. English aspirates p, t and k at the start of stressed syllables. Indonesian does not, and neither do Spanish, French or Italian, which is why an Indonesian speaking English often gets described as having a slightly soft accent.
Say pagi, tolong and kamu with the English puff and you sound foreign in a way that is difficult to place but easy to hear. Say them with the air held back, closer to the p in English "spin" than the p in "pin", and something clicks into place. The Indonesian t is also dental, made with the tongue against the back of the teeth rather than the ridge behind them, which softens it further.
While your hand is up there, one more: Indonesian vowels are pure and short. English drifts. "Go" glides from o towards u, "day" glides from e towards i. Indonesian toko and soto hold the o steady from beginning to end. Gliding is another quiet marker of an English accent.
Stress, and why English speakers get it wrong
Indonesian does not use stress to distinguish words the way English does. There is a mild lean on the second-to-last syllable, and a schwa never takes stress at all, which is why besar lands on sar. Beyond that, syllables get roughly equal time.
The real problem is not that English speakers stress the wrong syllable. It is what English does to the syllables around it. We hammer one syllable and reduce the rest to mush, so Jakarta becomes "juh-KAR-tuh" and Yogyakarta turns into something unrecognisable. Give every syllable its full value and its actual vowel, and you will be understood far more easily, even if your consonants are imperfect.
Where all this bends
Everything above describes the standard accent you hear on the news. Walk outside and it starts to move.
In Jakarta, Betawi influence turns final a into something like the café vowel. Apa becomes ape, kenapa becomes kenape, siapa becomes siape. You see it written that way in casual chat, and it goes hand in hand with the rest of the capital's informal register, which the post on bahasa gaul gets into properly.
Javanese speakers sometimes carry a habit from Javanese, where a final a leans towards o. It is why you hear Jogja pronounced closer to "Jogjo" by people who grew up there. In Manado and much of eastern Indonesia the rhythm is faster and flatter, and Indonesian there sits alongside local languages and creoles that colour the vowels differently again.
None of this is a problem for a learner. It just means that if you drill the standard pronunciation and then land in Surabaya or Kupang, the mismatch is coming from the country, not from you.
What I would actually work on
If I were starting again, I would spend an hour on the unaspirated p, t and k, because it changes how everything sounds and it transfers to every word you will ever say. Then I would take a list of the twenty or thirty most common schwa words and drill them until the vowel is automatic: besar, kecil, belum, sebentar, terima, kemarin, pergi, berapa, empat, enam, emas, kertas, pedas, bersih, penuh.
Everything else can wait. Indonesian is forgiving about pronunciation in a way that tonal languages are not, which is part of why people call it the easiest Asian language to start with, though that post is honest about where the difficulty gets moved to rather than removed.
Reading is where most learners hit the e problem hardest, because the page gives you no information at all and you end up guessing in your head. Hearing the words alongside the text is the fix. If you want to practise Indonesian with audio attached to real sentences rather than isolated word lists, that is roughly what we built the app for, and our plans lay out what is included.
Or just sign up and start with the schwa words. They come up in the first ten minutes of any conversation, so you get corrected fast.