Lewati ke konten

Latihan Grammar

Present Perfect Tense: Rumus, Contoh Kalimat, dan 30 Soal Latihan

Present perfect tense (have/has + V3) dipakai untuk kejadian lampau yang masih berhubungan dengan sekarang: pengalaman tanpa waktu spesifik, hasil yang masih terasa, dan keadaan yang berlangsung sampai sekarang. Contoh: 'I have lived in Bandung since 2020' (sampai sekarang masih tinggal di sana). Kalau waktunya spesifik dan sudah lewat, seperti yesterday atau last year, pakai past simple.

Ditulis oleh Raheel AshrafPerkiraan waktu baca: 15 menit

Latihan gratis: 30+ Latihan Grammar Bahasa Inggris Gratis + Kunci Jawaban

Present perfect tense dibentuk dengan have/has + V3 (past participle) dan dipakai saat kejadian di masa lalu masih terhubung dengan sekarang. Ada empat fungsi utama: pengalaman hidup tanpa waktu spesifik (I have been to Lombok), kejadian baru yang hasilnya masih terasa (She has lost her phone, jadi sekarang dia tidak bisa dihubungi), keadaan yang dimulai di masa lalu dan masih berlanjut (We have known each other since junior high), dan periode yang belum selesai (I have drunk three cups of coffee today). Kalau kamu menyebut waktu lampau yang spesifik, seperti yesterday, in 2019, atau two days ago, present perfect tidak boleh dipakai.

Kebanyakan pelajar Indonesia diajari rumus praktis: 'sudah = present perfect'. Rumus ini menolong di awal, tapi cepat menyesatkan. 'Aku sudah makan tadi pagi' justru past simple (I ate this morning), 'Aku sudah tahu' adalah simple present (I already know), dan 'Aku tinggal di sini sejak 2020' yang tanpa 'sudah' malah present perfect (I have lived here since 2020). Bahasa Indonesia tidak menandai tense pada kata kerja, jadi kita perlu belajar membaca hubungan waktunya, bukan menerjemahkan kata 'sudah'. Penjelasan lengkap dan 30 soal di bawah melatih keputusan itu.

Kuis Present Perfect Tense: 30 Soal

Pemanasan · level SMP

1.I ___ my homework, so I can play now.
2.She has never ___ snow.
3.___ you ever been to Lombok?
4.They ___ eaten yet. Let's wait for them.
5.Dodi has ___ his phone again!
6.We have ___ this movie twice.
7.My parents ___ in Medan since 2015.
8.I have known Rani ___ five years.
9.Has the bus ___ yet?
10.Dad ___ just ___ home.

Inti · level SMA

11.I ___ to Japan in 2019.
12.Pak Andi started teaching at our school in 2010, and he still teaches here. How long ___ he ___ here?
13.Where's Rina? — She ___ to the market. She'll be back soon.
14.I ___ Bali three times. I love it there.
15.When ___ you ___ your SIM?
16.It's the first time I ___ on a plane.
17.She hasn't called me ___ last Friday.
18.We ___ three chapters of our thesis so far.
19.Tono ___ his leg, so he can't play futsal today.
20.She hasn't replied to my message ___.

Tantangan · tes universitas

21.I ___ him at the bookstore yesterday.
22.The number of online motorbike taxis in Jakarta ___ a lot since 2015.
23.I ___ in Depok for two years, and I still love it here.
24.Pilih terjemahan yang tepat: 'Saya sudah makan tadi jam 7.'
25.Pilih terjemahan yang tepat: 'Dia sudah dua tahun bekerja di bank itu.'
26.This is the best nasi padang I ___ ever ___.
27.My sister ___ her driving test three times, but she ___ it yet.
28.I ___ a lot of weight since I started jogging at GBK.
29.It's been ten years ___ we last met.
30.Which sentence is correct?
Kunci jawaban dan penjelasanBuka setelah menyelesaikan latihan.
  1. 1. have finishedHasil kejadiannya terasa sekarang (aku bisa main) → present perfect. Subjek I memakai have, bukan has: I have finished. Has hanya untuk he, she, it, dan satu nama atau benda.
  2. 2. seenSetelah have/has selalu V3 (past participle): see – saw – seen. 'Has never saw' memakai V2 dan salah. Never di sini berarti 'belum pernah seumur hidup', pengalaman tanpa waktu spesifik.
  3. 3. HaveMenanyakan pengalaman dengan ever (pernah) → present perfect: Have you ever been...? Pertanyaannya dibentuk dengan memindah have ke depan; tidak perlu do/did.
  4. 4. haven'tEaten adalah V3, jadi kata bantunya harus have/has. They → haven't. 'Didn't eaten' salah karena did selalu diikuti bentuk dasar (didn't eat). Yet di kalimat negatif = belum.
  5. 5. lostLose adalah kata kerja tidak beraturan: lose – lost – lost. 'Losed' tidak ada. Present perfect dipakai karena akibatnya terasa sekarang: ponselnya masih hilang.
  6. 6. seenJumlah pengalaman sampai sekarang (twice) tanpa waktu spesifik → present perfect dengan V3: have seen. Kalau ditambah 'last month', kalimatnya berubah jadi past simple: We saw it twice last month.
  7. 7. have livedSince + titik awal, dan keadaannya masih berlanjut → present perfect. 'My parents' jamak → have lived. Dalam bahasa Indonesia kita bilang 'tinggal di Medan sejak 2015' tanpa perubahan apa pun, jadi 'live since' terasa wajar padahal salah.
  8. 8. forFor + lamanya waktu (five years, two months), since + titik awal (2019, kelas 7, last Monday). Ago hanya untuk past simple: I met her five years ago.
  9. 9. arrivedPola tanya: Has + subjek + V3? Untuk kata kerja beraturan, V3 sama dengan V2: arrive – arrived – arrived. Yet di kalimat tanya berarti 'sudah... belum?'.
  10. 10. has / comeDad = he → has. V3 dari come adalah come (come – came – come), jadi has just come. Just diletakkan di antara has dan V3, artinya 'baru saja'.
  11. 11. wentIn 2019 adalah waktu lampau spesifik → past simple: went. Present perfect tidak bisa dipakai bersama tahun, tanggal, yesterday, last..., atau ago, walaupun dalam bahasa Indonesia kita bilang 'sudah ke Jepang tahun 2019'.
  12. 12. has / taughtHow long + keadaan yang masih berlanjut → present perfect: How long has he taught here? 'Did he teach' berarti dia sudah berhenti mengajar. 'Does he teach' tidak bisa dipakai untuk menanyakan lamanya sampai sekarang.
  13. 13. has goneHas gone to = sudah pergi dan belum kembali (dia masih di pasar). Has been to = pernah ke sana dan sudah kembali. Karena Rina belum pulang, jawabannya has gone. 'Have gone' salah karena subjeknya she.
  14. 14. have been toMenghitung pengalaman berkunjung lalu kembali → have been to. 'I have gone to Bali three times' tidak logis, karena gone berarti kamu masih di sana dan belum pulang.
  15. 15. did / getPertanyaan when menanyakan waktu spesifik di masa lalu, jadi memakai past simple: When did you get...? 'When have you got...?' termasuk kesalahan klasik di soal ujian.
  16. 16. have flownPola tetap: It's the first/second time + present perfect. I → have, V3 dari fly adalah flown (fly – flew – flown). Bahasa Indonesia 'ini pertama kalinya aku naik pesawat' tidak memberi petunjuk apa pun soal tense.
  17. 17. sinceLast Friday adalah titik awal, bukan durasi → since. 'Dia belum telepon sejak Jumat lalu': sejak = since. 'From last Friday' butuh pasangan until/to dan tidak cocok di sini.
  18. 18. have writtenSo far (sejauh ini, sampai sekarang) menandai periode yang belum selesai → present perfect: have written. Write – wrote – written; 'wrote' adalah V2 dan tidak cocok dengan so far.
  19. 19. has brokenAkibatnya terasa sekarang (tidak bisa main hari ini) → present perfect. Break – broke – broken, jadi has broken. 'Has broke' memakai V2 setelah has, salah satu kesalahan bentuk paling umum.
  20. 20. yetYet dipakai di kalimat negatif dan tanya, biasanya di akhir kalimat: hasn't replied yet (belum membalas). Already dipakai di kalimat positif (She has already replied), dan just berarti baru saja.
  21. 21. metYesterday mengunci past simple: met. Ini jebakan utama untuk pelajar Indonesia: 'Aku sudah ketemu dia kemarin' memakai 'sudah', tapi waktunya spesifik, jadi bahasa Inggrisnya bukan present perfect.
  22. 22. has grownSince 2015 = dari titik itu sampai sekarang → present perfect. Subjeknya 'the number' (tunggal), bukan 'taxis', jadi has. Grow – grew – grown, maka has grown.
  23. 23. have livedFor two years + masih tinggal di sini (still... here) → present perfect: have lived. 'Lived' berarti sudah pindah. 'I live here for two years' adalah terjemahan langsung dari 'aku tinggal di sini selama dua tahun' dan salah.
  24. 24. I ate at 7 a.m.Ada 'sudah', tapi juga ada waktu spesifik (jam 7) → past simple: I ate at 7 a.m. Ini bukti bahwa 'sudah' tidak otomatis berarti present perfect. Tanpa 'jam 7', 'I've already eaten' akan tepat.
  25. 25. She has worked at that bank for two years.'Sudah dua tahun bekerja' = mulai dua tahun lalu dan masih bekerja → present perfect + for: has worked... for two years. Pilihan B mengubah makna (dua tahun lalu, sekarang tidak). 'Since two years' salah karena since butuh titik awal.
  26. 26. have / eatenSuperlatif + ever (the best... I have ever...) memakai present perfect, karena membandingkan dengan seluruh pengalaman sampai sekarang: I have ever eaten. Pola ini sering muncul di TOEFL.
  27. 27. has taken / hasn't passedJumlah percobaan sampai sekarang (three times) dan 'belum lulus' (yet) sama-sama terhubung dengan sekarang → has taken / hasn't passed. Dalam British English standar, yet berpasangan dengan present perfect.
  28. 28. have lostSince + klausa lampau (since I started...) menunjuk periode dari titik itu sampai sekarang → klausa utamanya present perfect: have lost. Klausa setelah since sendiri tetap past simple (started).
  29. 29. sincePola It's been (= It has been) + durasi + since + klausa lampau: It's been ten years since we last met (sudah sepuluh tahun sejak terakhir kita ketemu). 'Been' di sini adalah V3 dari be.
  30. 30. He has gone to Bali.Go – went – gone. Setelah has wajib V3: has gone. 'Has went' memakai V2 dan sangat sering muncul di tulisan pelajar. He memakai has, bukan have.

Rumus Present Perfect Tense

Present perfect selalu terdiri dari dua bagian: have/has dan V3 (past participle). Have untuk I, you, we, they, dan subjek jamak; has untuk he, she, it, dan satu nama atau benda. Have/has sekaligus berfungsi sebagai kata bantu, jadi kalimat negatif dan tanya tidak memakai do/does/did.

  • (+) S + have/has + V3: I have finished. / She has finished. Bentuk singkat: I've, you've, we've, they've, he's, she's, it's.
  • (−) S + have/has + not + V3: I haven't finished. / She hasn't finished.
  • (?) Have/Has + S + V3?: Have you finished? / Has she finished? Jawaban singkat: Yes, I have. / No, she hasn't.
  • Dengan kata tanya: How long have you lived here? / Where have you been? / What has he done?
  • Hati-hati dengan bentuk singkat he's: bisa he is atau he has. Lihat kata kerjanya: He's working = he is; He's worked = he has.

V3 yang Sering Salah

Untuk kata kerja beraturan, V3 = V2 (worked, studied, played). Masalahnya ada di kata kerja tidak beraturan, karena V2 dan V3-nya sering berbeda. Kesalahan 'has went' atau 'have ate' hampir selalu terjadi di daftar berikut:

  • go – went – gone; come – came – come; become – became – become
  • eat – ate – eaten; see – saw – seen; take – took – taken; give – gave – given
  • write – wrote – written; break – broke – broken; speak – spoke – spoken
  • do – did – done; be – was/were – been; fly – flew – flown; know – knew – known
  • buy – bought – bought; lose – lost – lost; meet – met – met (V2 = V3)

4 Fungsi Present Perfect (dengan Contoh Kalimat)

  • Pengalaman hidup tanpa waktu spesifik: I have climbed Mount Bromo. / Have you ever tried durian ice cream?
  • Kejadian lampau dengan hasil yang terasa sekarang: I've lost my KTM, so I can't enter the library. / Someone has taken my helmet!
  • Keadaan yang mulai di masa lalu dan berlanjut sampai sekarang (since/for): She has worked at a startup in BSD for three years.
  • Periode yang belum selesai: I've had two exams this week. / We haven't seen any rain this month.
  • Baru saja terjadi (just) dan sudah/belum (already/yet): The class has just started. / Have you submitted the assignment yet?

Keterangan Waktu dan Posisinya

  • ever (pernah, di pertanyaan) dan never (tidak pernah): sebelum V3 → Have you ever been...? / I've never been...
  • just (baru saja) dan already (sudah): di antara have/has dan V3 → She has just left. / I've already paid.
  • yet (belum / sudah... belum?): di akhir kalimat negatif dan tanya → I haven't paid yet. / Have you paid yet?
  • since + titik awal (since 2020, since Monday, since I was in high school) dan for + durasi (for two weeks, for ages).
  • so far, up to now, recently, lately, this week/month/year (yang belum selesai), how long, how many times.
  • Jangan dipakai bersama: yesterday, last..., ago, in 2019, when I was a child. Semua itu milik past simple.

Saat bingung, coba tambahkan 'kemarin' atau tahun tertentu ke kalimat Indonesiamu. Kalau maknanya tidak berubah dan memang ada waktu spesifik, pakai past simple. Kalau kalimatmu tentang 'sampai sekarang', pakai present perfect.

Have Been vs Have Gone

Dua-duanya berasal dari kata 'pergi', tapi artinya berbeda. 'She has been to Singapore' berarti dia pernah ke sana dan sudah kembali (pengalaman). 'She has gone to Singapore' berarti dia sudah berangkat dan sekarang masih di sana. Karena itu, untuk pengalamanmu sendiri, pakai been: I have been to Singapore twice. Kalimat 'I have gone to Singapore' hampir tidak mungkin diucapkan dari Jakarta.

Beda Present Perfect dan Past Simple (Ringkas)

Pertanyaan kuncinya: apakah waktunya disebut spesifik dan sudah lewat? Kalau iya, past simple (V2). Kalau waktunya tidak disebut atau periodenya masih berjalan sampai sekarang, present perfect. 'I have visited Yogyakarta' (pengalaman) berubah jadi 'I visited Yogyakarta last December' begitu ada waktu spesifik. Sama halnya, 'I lived in Surabaya for five years' berarti sudah pindah, sedangkan 'I have lived in Surabaya for five years' berarti masih tinggal di sana.

Satu catatan: dalam percakapan bahasa Inggris Amerika, past simple sering dipakai dengan just, already, dan yet (Did you eat yet? I just finished). Itu wajar di sana, tapi di ujian dan tulisan formal, present perfect adalah pilihan aman untuk kata-kata itu. Untuk latihan khusus perbedaan dua tense ini, kerjakan 30 soal present perfect vs past simple di halaman terpisah.

Kenapa Present Perfect Sulit untuk Orang Indonesia: 'Sudah' Bukan Rumus

Bahasa Indonesia tidak punya konjugasi atau penanda tense pada kata kerja. Waktu ditunjukkan dengan kata keterangan seperti sudah, sedang, akan, pernah, belum, tadi, dan kemarin, dan kata-kata itu sering boleh dihilangkan. Karena itu, wajar kalau 'sudah' diperlakukan sebagai terjemahan present perfect. Masalahnya, 'sudah' adalah penanda aspek (sesuatu telah terjadi atau tercapai), bukan penanda tense, dan bisa muncul di kalimat dengan waktu apa saja:

  • 'Aku sudah makan.' (tanpa waktu) → I've eaten / I've already eaten. (present perfect)
  • 'Aku sudah makan tadi jam 7.' → I ate at 7. (past simple, karena ada waktu spesifik)
  • 'Aku sudah tahu.' → I already know. (simple present, karena know adalah stative verb)
  • 'Waktu kamu datang, aku sudah tidur.' → When you came, I was already asleep / I had already gone to bed. (lampau, bukan present perfect)
  • 'Aku tinggal di sini sejak 2020.' (tanpa sudah) → I have lived here since 2020. (present perfect)
  • 'Pernah' biasanya → ever/never + present perfect; 'belum' biasanya → haven't... yet.

Jangan mencari kata 'sudah'. Carilah dua hal: apakah ada waktu lampau spesifik, dan apakah kejadiannya masih terhubung dengan sekarang.

Cara Latihan dan Kesalahan yang Perlu Dicek

Untuk latihan, kerjakan 30 soal di atas dan tandai nomor yang salah. Lalu tulis lima kalimat tentang pengalamanmu (I have never..., I have been to...) dan lima kalimat tentang hal yang masih berlanjut (I have studied English since..., I have known my best friend for...). Tempel tulisanmu ke pemeriksa tata bahasa PromGee untuk melihat bagian mana yang masih tertukar dengan past simple atau simple present.

Saat mengecek tulisanmu, cari enam kesalahan yang paling sering muncul di tulisan pelajar Indonesia ini (salah → benar):

  • I have gone to Bali last year. → I went to Bali last year.
  • She has went home. → She has gone home.
  • I live here since 2020. → I have lived here since 2020.
  • I have known him since five years. → I have known him for five years.
  • When have you arrived? → When did you arrive?
  • Did you ever been to Bandung? → Have you ever been to Bandung?

Lanjut berlatih

Pertanyaan Umum

Apa bedanya present perfect dan past simple?

Past simple untuk kejadian lampau dengan waktu spesifik yang sudah selesai (I went to Bali last year). Present perfect untuk kejadian yang masih terhubung dengan sekarang: pengalaman tanpa waktu spesifik, hasil yang masih terasa, atau keadaan yang berlanjut (I have been to Bali twice). Ada latihan khusus 30 soal untuk perbedaan keduanya.

Apakah 'sudah' selalu diterjemahkan dengan present perfect?

Tidak. 'Sudah makan tadi pagi' adalah past simple (I ate this morning) karena ada waktu spesifik, dan 'sudah tahu' biasanya simple present (I already know). Sebaliknya, 'tinggal di sini sejak 2020' tanpa 'sudah' tetap present perfect (I have lived here since 2020).

Kapan memakai since dan kapan memakai for?

For dipakai sebelum lamanya waktu (for three years, for a week), since dipakai sebelum titik awal (since 2020, since Monday, since I was in high school). Cara mengingat: for = selama, since = sejak. 'Since three years' selalu salah.

Masih Sering Tertukar Have/Has + V3 dengan V2?

Tempel tulisan bahasa Inggrismu ke pemeriksa tata bahasa gratis PromGee. Present perfect yang dipakai bersama waktu spesifik, V3 yang salah, dan since/for yang tertukar ditandai langsung beserta penjelasannya.

Cek Tulisanku Gratis

Sumber dan referensi

Lanjut membaca: panduan tata bahasa lainnya

Latih topik ini dengan alat gratis: Kuis Tenses Bahasa Inggris Gratis