Pilih RevenueCat alternatif berdasarkan pembelian, langganan, paywall, kredit, atau tanggung jawab pembayaran inferensi yang perlu diubah oleh aplikasi Anda. Bandingkan Adapty dan Qonversion untuk alur kerja monetisasi seluler yang dipilih, Paddle dan Polar untuk persyaratan perdagangan web yang dipilih, dan ShareAI untuk inferensi yang dibayar pelanggan dengan margin aplikasi yang diizinkan. Opsi ini tidak secara otomatis menggantikan integrasi toko aplikasi yang sama atau saldo pelanggan.
Ditinjau 23 Oktober 2026. ShareAI menerbitkan perbandingan ini dan mengoperasikan satu program yang dibahas. Referensi resmi saat ini mendukung fakta produk; tangkapan layar menunjukkan halaman sumber yang sebenarnya. Kode adalah buku besar sintetis yang dijalankan secara offline. Tidak ada pembelian toko aplikasi langsung, pemulihan akun, penyesuaian mata uang, pembayaran, atau eksperimen konversi yang dilakukan.
RevenueCat sudah mencakup pembelian, akses langganan, alat pertumbuhan, dan mata uang dalam aplikasi. Perbandingan yang mengasumsikan hanya memvalidasi langganan berulang melewatkan cakupan saat ini. Mulailah dengan platform aplikasi yang sebenarnya, identitas pelanggan, dan perjalanan komersial yang diterima. Pembayar inferensi model yang berbeda adalah keputusan terpisah dari mengganti infrastruktur pembelian yang menjaga pelanggan yang ada tetap bekerja.
Apa yang saat ini didukung oleh RevenueCat
Referensi produk saat ini mencakup pembelian, data pelanggan, dan pertumbuhan di seluler dan web. Alasan untuk mempertahankannya: evaluasi langganan, hak, dan alur kerja pertumbuhan yang sebenarnya sudah memenuhi kebutuhan Anda. Backend pembelian yang berfungsi dapat tetap berguna bahkan ketika aplikasi menginginkan pengaturan pembayaran yang disetujui berbeda untuk lalu lintas model yang memenuhi syarat.
Referensi In-App Currency menjelaskan hibah dari pembelian yang diverifikasi dan iklan yang diberi penghargaan. Pengidentifikasi teknis yang ada masih menggunakan Virtual Currency. Ini memisahkan membaca saldo dari menghabiskannya: jalur API Developer standar menggunakan backend tepercaya Anda dan kunci rahasia. Jalur pengeluaran terautentikasi iOS yang didokumentasikan sedang dalam beta privat, bukan jalan pintas yang tersedia secara umum untuk setiap platform yang didukung.
Bandingkan SDK yang dipilih, sumber pembelian, backend, dan identitas pelanggan yang sebenarnya. Saldo yang ditampilkan di antarmuka adalah sinyal pelanggan yang berguna, tetapi itu tidak menetapkan bahwa operasi AI berikutnya diotorisasi, bahwa debitnya diterima, atau bahwa hibah asli mewakili pendapatan inferensi yang dikumpulkan. Hubungan tersebut memerlukan penerapan aplikasi dan keputusan komersial yang eksplisit.
Aplikasi pembelajaran bahasa menggabungkan keanggotaan dan kredit latihan AI.
Pertimbangkan aplikasi pembelajaran bahasa hipotetis dengan pengguna mobile dan web yang sudah ada. Keanggotaan membuka pelajaran, sementara kredit membayar untuk latihan peran AI. Bisnis ingin membandingkan margin yang diizinkan pada inferensi yang memenuhi syarat. Langganan pelajarannya, kredit yang dibeli, penggunaan model, dan sesi latihan yang berguna adalah unit yang berbeda dan harus tetap dapat dipahami oleh pelajar.
Seorang pelajar membeli kredit, memulai percakapan, dan kehilangan konektivitas sebelum melihat hasilnya. Aplikasi mencoba lagi, kemudian pelajar masuk ke akun aplikasi lain dan memulihkan pembelian. Hak keanggotaan dan saldo kredit tidak harus bergerak bersama. Dukungan harus menjelaskan apa yang dibeli, akun mana yang memiliki nilai, latihan apa yang diberikan, dan apakah penyesuaian diperlukan.
Kasus sulit adalah debit yang selesai dengan respons yang hilang, diikuti oleh pergantian akun dan saldo yang ditampilkan usang. Menagih lagi karena layar masih menunjukkan nilai lama bisa salah. Memberikan nilai ke akun lain karena keanggotaan dipulihkan juga bisa salah. Pertahankan transaksi asli dan identitas sesi yang berguna sebelum mempertimbangkan migrasi vendor.
Bandingkan alternatif berdasarkan tanggung jawab yang mereka gantikan.
| Opsi | Evaluasi untuk | Kualifikasi secara terpisah. |
|---|---|---|
| RevenueCat | Pembelian, akses langganan, dan mata uang dalam aplikasi. | SDK yang dipilih, pengeluaran tepercaya, dan identitas pelanggan. |
| Adapty | Infrastruktur langganan dan eksperimen alur pembelian. | Toko yang didukung, migrasi akses, dan kebutuhan kredit yang sebenarnya. |
| Qonversion | Manajemen langganan, paywalls, dan analitik. | Siklus hidup pembelian, pemetaan pelanggan, dan tugas backend. |
| Paddle | Web commerce merchant-of-record yang disetujui. | Kelayakan produk, unit penagihan, dan integrasi akses aplikasi. |
| Polar | Checkout web yang disetujui dan penagihan terukur. | Produk yang didukung, peristiwa penggunaan, dan siklus hidup keuangan. |
| ShareAI | Inferensi yang disetujui pelanggan dengan margin aplikasi | Pengarahan yang memenuhi syarat, atribusi, dan ketentuan penyelesaian. |
Pastikan persyaratan platform dan distribusi aplikasi tetap eksplisit. Perbandingan ini tidak menetapkan pengecualian dari persyaratan toko yang berlaku atau menjanjikan bahwa web checkout dapat menggantikan setiap pembelian dalam aplikasi. Tidak ada dompet yang tersinkronisasi secara otomatis, konektor native, atau transfer saldo RevenueCat ke alternatif ini yang diimplikasikan. Kualifikasikan perjalanan pembelian dan inference yang dipilih sebelum mengubah akses pelanggan yang ada.
Lacak satu sesi praktik dari pembelian hingga koreksi.
| Tahap | Bukti untuk dipertahankan | Pertanyaan aplikasi bahasa. |
|---|---|---|
| Pembelian atau pemberian | Sumber yang terverifikasi dan identitas pelanggan asli. | Siapa yang menerima hak atau saldo yang diterima? |
| Pengeluaran yang disahkan. | Permintaan terpercaya dan identitas transaksi asli. | Apakah debit praktik ini diterima sekali? |
| Praktik disampaikan. | Sesi logis dan hasil model aktual. | Percakapan bermanfaat apa yang diterima oleh pembelajar? |
| Status diperbarui. | Saldo otoritatif dan nilai yang ditampilkan. | Apakah antarmuka mencerminkan operasi yang telah selesai? |
| Koreksi dan penyelesaian | Penyesuaian yang diterima dan catatan keuangan aktual. | Nilai apa yang dipulihkan, dikumpulkan, atau dilepaskan? |
Pertahankan pemberian dan debit asli alih-alih menulis ulang sejarah untuk membuat layar terlihat konsisten. Koreksi pelanggan dan penyesuaian biaya penyedia model dapat menjadi peristiwa yang berbeda. Link sesi praktik yang diterima ke pembelian dan catatan keuangan yang relevan, sehingga produk, dukungan, dan keuangan dapat menjelaskan hasil yang sama tanpa memperlakukan kredit sebagai otomatis dapat dipertukarkan dengan uang tunai.
Adapty: bandingkan infrastruktur langganan dan alur pembelian
Referensi produk terkini Adapty menjelaskan validasi pembelian, akses langganan, paywall, dan alur onboarding, eksperimen, serta analitik. Kelebihan: bandingkan platform yang benar-benar dipilih ketika aplikasi bahasa ingin infrastruktur pembelian dan alur kerja eksperimennya dievaluasi bersama, termasuk apa yang terjadi setelah pembelajar memperbarui, membatalkan, atau menghadapi masalah penagihan.
Pertimbangan: evaluasi toko yang didukung dan versi SDK, akses pelanggan yang ada, riwayat pembelian, dan persyaratan kredit aktual. RevenueCat juga menawarkan paywall dan alat pertumbuhan, sehingga keberadaan editor saja tidak cukup untuk memindahkan backend. Sebuah ilustrasi perkiraan atau eksperimen tidak membuktikan pendapatan yang dikumpulkan atau peningkatan retensi untuk aplikasi Anda.
Untuk kasus roleplay, uji pemulihan keanggotaan dan perlakuan kredit yang diterima secara terpisah. Pertahankan akun asli pembelajar dan sesi latihan logis melalui migrasi. Alur pembelian baru dapat terlihat rapi sementara pelanggan lama kehilangan akses atau percobaan ulang menghabiskan kredit dua kali. Bandingkan hasil konkret tersebut sebelum membuat keputusan bisnis terkait konversi atau biaya rekayasa.
Qonversion: bandingkan operasi langganan dan analitik
Referensi produk Qonversion saat ini menjelaskan manajemen langganan, pembuat paywall tanpa kode, eksperimen, analitik, dan integrasi. Keunggulan: evaluasi jalur yang dipilih ketika aplikasi bahasa ingin mempertimbangkan perilaku pembelian konsumen dan operasi langganan secara bersamaan, daripada memilih pengganti hanya berdasarkan harga yang tercantum di sebelah tangkapan layar dasbor.
Pertimbangan: evaluasi dukungan toko aktual, siklus hidup pembelian, pemetaan pelanggan tepercaya, tugas backend, dan ketentuan komersial yang dipilih. Grafik analitik, nilai umur yang diprediksi, dan pembayaran yang diterima mewakili bukti yang berbeda. Jangan berasumsi bahwa setiap pesaing mereproduksi perilaku mata uang aplikasi atau aturan pemulihan akun yang sama persis karena mereka menawarkan langganan dan analitik pelanggan.
Untuk pembelajar yang mengganti akun, verifikasi hak yang dimaksudkan dan kepemilikan kredit tanpa diam-diam menggabungkan saldo. Pertahankan identitas latihan yang berguna dari awal hingga percobaan ulang dan kejadian yang tertunda. Sebuah migrasi lebih kredibel ketika aplikasi dapat menjelaskan sesi yang terputus dan koreksinya daripada hanya menampilkan grafik pendapatan serupa di konsol yang berbeda.
Paddle: bandingkan tanggung jawab web-commerce yang disetujui
Paddle referensi pengembang menjelaskan platform web-commerce-nya, sementara halaman produknya mengidentifikasi penawaran merchant-of-record. Keunggulan: bandingkan cakupan tersebut ketika aplikasi bahasa membutuhkan penjual yang disetujui dan pengaturan checkout untuk penjualan web yang memenuhi syarat. Ini adalah keputusan yang berbeda dari memilih SDK pembelian seluler.
Tradeoffs: tentukan kelayakan penjual dan produk, unit penagihan yang diterima, integrasi akses pelanggan, dan siklus keuangan. Pengaturan merchant-of-record memiliki cakupan kontraktualnya sendiri; ini tidak secara otomatis menyelesaikan setiap pembelian di app-store atau tanggung jawab model-inference. Pertahankan identitas dan hak pembelajar ketika sumber pembelian web dan mobile saling berdampingan.
Untuk aplikasi roleplay, putuskan apakah penjualan web memberikan keanggotaan, kredit latihan, atau produk lain yang diterima. Verifikasi sistem mana yang memiliki hak tersebut dan bagaimana koreksi di kemudian hari memengaruhinya. Checkout yang berhasil saja tidak dapat memastikan bahwa akun aplikasi yang benar menerima akses yang dapat digunakan atau bahwa setiap kredit yang dibeli sebelumnya dimigrasikan dengan benar.
Polar: bandingkan checkout web dengan penagihan penggunaan aktual.
Referensi Polar penggunaan-penagihan menjelaskan pengukuran berbasis peristiwa, dan referensi merchant-of-record menjelaskan pengaturan penjualan yang berlaku. Pros: evaluasi jalur yang dipilih ketika aplikasi bahasa ingin langganan web yang disetujui dan biaya terukur dipertimbangkan bersama.
Tradeoffs: tentukan konfigurasi produk dan harga yang didukung, identitas peristiwa yang terpercaya, perilaku pengumpulan dan akses. Meteran penggunaan tidak secara otomatis menjadi dompet mata uang virtual atau pengganti lengkap untuk backend langganan mobile yang ada. Aplikasi tetap perlu menjelaskan apa yang merupakan sesi latihan yang berguna dan apa yang terjadi ketika pengumpulan dan akses tidak selaras.
Untuk percakapan yang terputus, pertahankan penggunaan model asli secara terpisah dari penyesuaian pembelajar yang diterima. Rekonsiliasi identitas kerja yang berguna dari aplikasi dengan meteran yang dipilih dan catatan keuangan. Total agregat yang cocok tidak membuktikan bahwa pengulangan telah dideduplikasi untuk pelanggan yang benar atau bahwa saldo yang ditampilkan cocok dengan status otoritatif.
ShareAI: bandingkan pembayaran inferensi yang disetujui dan margin aplikasi
ShareAI Builder Program membahas sebuah aplikasi yang sudah ada dengan pengguna-penggunanya sendiri. Lalu lintas model yang memenuhi syarat dialihkan melalui ShareAI, Builder mengonfigurasi biaya tambahan atau margin yang diizinkan, dan pelanggan akhir membayar ShareAI untuk inferensi tersebut. Pendapatan yang dikaitkan dengan aplikasi mengikuti program ini. Kelebihan: evaluasi perjalanan pembayaran dan atribusi yang disetujui untuk inferensi roleplay yang memenuhi syarat.
Kompromi: persetujuan, lalu lintas yang memenuhi syarat, akses model, dan ketentuan akun berlaku. Validated company Builders memiliki periode tinjauan 45 hari sebelum pembayaran. Saat ini, individu mengakumulasi nilai inferensi untuk penggunaan ShareAI, tanpa pencairan tunai atau transfer akun. Aplikasi tetap dibangun, dihosting, didistribusikan, dan dipelihara di tempat lain; pelajaran, langganan lainnya, integrasi toko, dan dukungan tetap menjadi tanggung jawab eksplisit.
Infrastruktur khusus atau pasokan endpoint menjadi milik Provider atau Prosumer yang berlaku dalam proses onboarding, terpisah dari atribusi Builder. Produk lain sudah menawarkan kredit, harga khusus, dan opsi infrastruktur. Bandingkan persetujuan aktual, pembayar, margin yang diizinkan, dan rilis. Builder Program tidak menetapkan layanan merchant-of-record umum atau migrasi otomatis pembelian, hak, dan saldo RevenueCat.
Saldo yang ditampilkan dan keanggotaan yang dipulihkan adalah bukti yang berbeda.
Panduan mata uang menjelaskan bahwa perubahan saldo backend tidak secara otomatis menyegarkan objek SDK yang di-cache. Panduan ini juga membedakan mata uang yang tidak dapat ditransfer dari pemulihan pembelian. Untuk aplikasi bahasa, ini membuat kasus respons yang hilang dan pergantian akun menjadi material: nilai lama yang ditampilkan tidak dapat mengotorisasi debit lain atau menetapkan bahwa kredit mengikuti keanggotaan yang dipulihkan.
Panduan ini mendokumentasikan kunci idempoten untuk penyesuaian ulang dan mengidentifikasi penyesuaian API yang muncul dalam riwayat pelanggan tanpa menghasilkan peristiwa webhook yang sama. Pertahankan identitas permintaan asli Anda dan hasil otoritatif. Jangan menunggu tanpa batas waktu untuk peristiwa yang tidak diterbitkan oleh operasi yang dipilih, atau mengubah respons yang tidak pasti menjadi sesi latihan yang dapat ditagih baru.
Pembelian sandbox juga memiliki aturan akses yang dapat dikonfigurasi, dan membuat aturan tersebut lebih ketat tidak mencabut nilai yang sudah diberikan. Kualifikasi pengujian dengan identitas pelanggan yang dipisahkan secara tepat dan bukti yang dipertahankan. Pembelian uji, tampilan kredit yang di-cache, dan pembelian pelanggan langsung adalah keadaan yang berbeda; tidak ada yang boleh diam-diam menjadi bukti pengumpulan produksi atau migrasi hak.
Pisahkan biaya platform, kredit aplikasi, dan margin inferensi.
Bandingkan basis penagihan vendor aktual, biaya toko atau pembayaran, add-on yang dipilih, pekerjaan implementasi dan dukungan. Pendapatan langganan yang dilacak, pendapatan yang dikaitkan dengan paywall, penggunaan terukur, dan kredit adalah unit yang berbeda. Persentase utama yang lebih rendah dapat berlaku untuk basis yang berbeda. Dapatkan ketentuan untuk pengaturan yang dipilih daripada meminjam tarif atau batasan platform dari perbandingan sebelumnya.
Untuk aritmatika saja, 1000 USD inferensi ditambah dengan biaya tambahan hipotetis 15% menghasilkan 150 USD biaya tambahan bruto dan total 1150 USD. Jumlah sintetis ini bukanlah biaya RevenueCat atau ShareAI, pendapatan yang diterima, laba bersih, tingkat konversi kredit, atau hasil pajak. Biaya aktual, koreksi, kelayakan, dan ketentuan komersial memengaruhi hasil bisnis.
Periksa aritmatika sebelum memenuhi syarat pembayaran praktik nyata.
Fixture yang dieksekusi di bawah ini mendeduplikasi aktivitas identik, menolak duplikat yang bertentangan, dan mencatat penyesuaian eksplisit dalam sen USD integer. Ini tidak memvalidasi tanda terima toko, menghabiskan mata uang dalam aplikasi, memulihkan akun, atau mengumpulkan pembayaran. Hasil tersebut memerlukan aplikasi aktual dan bukti komersial seputar aritmatika.
JavaScript
import assert from "node:assert/strict";
const records = [
{id: "usage-a", customer: "demo", cents: 60000n, kind: "usage"},
{id: "usage-b", customer: "demo", cents: 50000n, kind: "usage"},
{id: "usage-a", customer: "demo", cents: 60000n, kind: "usage"},
{id: "adjustment-b", customer: "demo", cents: -10000n, kind: "adjustment"}
];
function netCents(rows) {
const seen = new Map();
let total = 0n;
for (const row of rows) {
assert.equal(row.customer, "demo");
const fingerprint = [row.customer, row.cents.toString(), row.kind].join("|");
if (seen.has(row.id)) {
if (seen.get(row.id) !== fingerprint) throw new Error("Conflicting duplicate");
continue;
}
if (row.cents < 0n && row.kind !== "adjustment") throw new Error("Invalid sign");
seen.set(row.id, fingerprint);
total += row.cents;
}
return total;
}
const base = netCents(records);
assert.equal(base, 100000n);
assert.throws(() => netCents([...records,
{id: "usage-a", customer: "demo", cents: 1n, kind: "usage"}
]));
const numerator = base * 1500n; // Hypothetical 15 percent in basis points.
if (numerator % 10000n !== 0n) throw new Error("Define contractual rounding first");
const surcharge = numerator / 10000n;
assert.equal(surcharge, 15000n);
const usd = cents => `${cents / 100n}.${(cents % 100n).toString().padStart(2, "0")}`;
console.log(JSON.stringify({baseUSD: usd(base), grossSurchargeUSD: usd(surcharge),
totalUSD: usd(base + surcharge), paidReceiptVerified: false}));Output yang diamati adalah 1000 USD inferensi ilustratif, 150 USD biaya tambahan bruto, dan total 1150 USD, tanpa tanda terima berbayar yang diverifikasi. Pertahankan identitas pelajar yang terpercaya, pekerjaan praktik asli, penggunaan aktual, dan koreksi yang diterima dalam produksi. Jumlah yang benar tidak dapat menetapkan saldo saat ini, keanggotaan yang dipulihkan, faktur yang benar, atau pendapatan aplikasi yang dirilis.
Pindahkan satu pelajar dan pengecualian sesi yang terputus terlebih dahulu.
- Identifikasi sumber pembelian aktual, SDK, identitas pelanggan, dan tanggung jawab komersial.
- Pilih tanggung jawab langganan, paywall, mata uang, atau pembayaran inferensi yang perlu diubah.
- Pertahankan pembelian asli, hibah, debit, dan identitas praktik yang berguna.
- Latih respons yang hilang, coba ulang, saldo yang basi, dan pemulihan akun.
- Verifikasi akses aktual dan bukti keuangan tanpa pengumpulan langsung yang duplikat.
- Pertahankan catatan asli dan rollback hingga perjalanan pelajar lengkap memenuhi syarat.
Pertahankan RevenueCat ketika implementasi yang dipilih sesuai. Bandingkan pengganti seluler untuk persyaratan pembelian aktual, jalur web-commerce untuk penjualan yang disetujui, dan ShareAI untuk inferensi yang dibayar pelanggan yang memenuhi syarat. Mulailah dengan satu sesi roleplay yang aksesnya, praktik yang disampaikan, dan koreksi tetap dapat dijelaskan kepada pelajar, dukungan, dan keuangan bersama.
Pertanyaan yang sering diajukan
Alternatif RevenueCat mana yang harus dibandingkan oleh aplikasi AI?
Adapty dan Qonversion menangani alur kerja langganan seluler dan pertumbuhan yang dipilih. Paddle dan Polar menangani persyaratan web-commerce yang dipilih. ShareAI berkaitan dengan inference yang dibayar pelanggan yang disetujui dengan biaya tambahan aplikasi yang diizinkan. Pilih berdasarkan tanggung jawab aktual daripada mengasumsikan setiap opsi menggantikan backend pembelian yang sama.
Apakah RevenueCat sudah mendukung kredit aplikasi?
Ya. Dokumentasi Mata Uang Dalam Aplikasi saat ini menjelaskan hibah dari pembelian yang terverifikasi dan iklan berhadiah, pembacaan saldo, dan pengeluaran. Pengidentifikasi teknis yang ada masih menggunakan Mata Uang Virtual. Kualifikasikan SDK, backend, dan identitas pelanggan yang dipilih daripada mengasumsikan kredit tidak ada.
Bisakah setiap aplikasi menghabiskan kredit secara langsung tanpa backend?
Tidak ada jalur universal yang ditetapkan. Jalur pengeluaran API Pengembang standar menggunakan backend tepercaya dan kunci rahasia. Jalur pengeluaran iOS yang diautentikasi yang didokumentasikan berada dalam beta privat, dengan persyaratan platform dan SDK. Jangan anggap ini tersedia secara umum di setiap platform.
Apakah SDK selalu menampilkan saldo backend terbaru?
Panduan yang dikutip menyatakan bahwa perubahan saldo backend tidak secara otomatis menyegarkan objek SDK yang di-cache. Kualifikasikan alur penyegaran aktual dan hasil otoritatif. Saldo yang ditampilkan saja tidak boleh menetapkan bahwa debit praktik lain diizinkan atau bahwa debit sebelumnya gagal.
Apakah kredit selalu ditransfer saat pembelian dipulihkan?
Tidak. Panduan yang dikutip membedakan mata uang dalam aplikasi yang tidak dapat ditransfer dari pemulihan pembelian yang dapat ditransfer. Pertahankan pelanggan asli dan hak yang diterima saat akun berubah. Jangan menyimpulkan kepemilikan kredit hanya dari keanggotaan yang dipulihkan.
Apakah setiap penyesuaian mata uang menghasilkan webhook?
Jangan mengasumsikan itu. Panduan saat ini mengidentifikasi penyesuaian API yang muncul dalam riwayat pelanggan tanpa menghasilkan peristiwa webhook. Pertahankan identitas transaksi asli, penanganan pengulangan, dan pembacaan ulang otoritatif untuk operasi yang dipilih.
Bagaimana penyelesaian Builder ShareAI berbeda berdasarkan jenis akun?
Builders perusahaan yang telah divalidasi memiliki periode tinjauan 45 hari sebelum pembayaran. Individu saat ini mengakumulasi nilai inferensi untuk penggunaan ShareAI, tanpa pencairan uang atau transfer akun. Persetujuan, lalu lintas yang memenuhi syarat, dan ketentuan akun berlaku; penggunaan dan penghasilan tidak dijamin.
Bisakah ShareAI secara otomatis menggantikan pembelian dan saldo app-store?
Tidak ada migrasi pembelian otomatis, dompet bersama, atau pengecualian dari persyaratan platform yang berlaku yang tersirat. Program Builder berkaitan dengan inference yang diarahkan yang memenuhi syarat, biaya tambahan yang diizinkan, dan atribusi aplikasi. Aplikasi tetap dihosting dan dikelola di tempat lain, dengan pelajaran, langganan, dan integrasi pembelian memerlukan keputusan eksplisit.