Lewati ke konten utama

Customer Lifetime Value

Dalam tutorial ini, pelajari cara menghitung Customer Lifetime Value di Python.
Diperbarui 28 Sep 2026  · 11 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

Ekonom Italia Vilfredo Pareto menyatakan bahwa 80% dampak berasal dari 20% penyebab, yang dikenal sebagai aturan 80/20 atau prinsip Pareto. Demikian pula, 80% bisnis perusahaan berasal dari 20% pelanggan. Perusahaan perlu mengidentifikasi pelanggan teratas tersebut dan menjaga hubungan dengan mereka untuk memastikan pendapatan berkelanjutan. Untuk mempertahankan hubungan jangka panjang dengan pelanggan, perusahaan perlu menjadwalkan skema loyalitas seperti diskon, penawaran, kupon, poin bonus, dan hadiah.

Menargetkan pelanggan baru lebih mahal daripada mempertahankan pelanggan yang sudah ada karena Anda tidak perlu mengeluarkan sumber daya, waktu, dan kerja keras untuk mendapatkan pelanggan baru. Anda hanya perlu membuat pelanggan yang sudah ada tetap puas. Analis bisnis menghitung biaya akuisisi pelanggan secara akurat menggunakan CLTV (Customer Lifetime Value). CLTV menunjukkan total pendapatan dari pelanggan selama seluruh hubungan. CLTV membantu perusahaan untuk fokus pada pelanggan potensial yang dapat membawa lebih banyak pendapatan di masa depan.

Customer Lifetime Value (CLTV)

"Customer Lifetime Value adalah nilai moneter yang mewakili jumlah pendapatan atau laba yang akan diberikan pelanggan kepada perusahaan selama periode hubungan". CLTV menunjukkan implikasi dari memperoleh pelanggan jangka panjang dibandingkan dengan pelanggan jangka pendek. Customer lifetime value (CLV) dapat membantu Anda menjawab pertanyaan terpenting tentang penjualan bagi setiap perusahaan:

  • Bagaimana mengidentifikasi pelanggan yang paling menguntungkan?
  • Bagaimana perusahaan dapat menawarkan produk terbaik dan menghasilkan uang paling banyak?
  • Bagaimana cara melakukan segmentasi pelanggan yang menguntungkan?
  • Berapa banyak anggaran yang perlu dikeluarkan untuk memperoleh pelanggan?

Hitung Customer Lifetime Value

Ada banyak pendekatan yang tersedia untuk menghitung CLTV. Setiap orang punya pandangan masing-masing. Untuk menghitung CLTV kita memerlukan data historis pelanggan, tetapi Anda tidak akan bisa menghitung untuk pelanggan baru. Untuk menyelesaikan masalah ini, Analis Bisnis mengembangkan model machine learning untuk memprediksi CLTV pelanggan baru. Mari jelajahi beberapa pendekatan untuk Perhitungan CLTV:

1) Anda dapat menghitungnya dengan menjumlahkan laba/pendapatan dari pelanggan dalam suatu siklus tertentu. Contoh, jika pelanggan telah bersama Anda selama 3 tahun terakhir, Anda dapat menjumlahkan semua laba dalam 3 tahun tersebut. Anda dapat merata-ratakan laba secara tahunan, setengah tahunan, atau bulanan, tetapi dengan pendekatan ini Anda tidak dapat membangun model prediktif untuk pelanggan baru.

2) Bangun model regresi untuk pelanggan yang sudah ada. Ambil data enam bulan terakhir sebagai variabel independen dan total pendapatan selama tiga tahun sebagai variabel dependen lalu bangun model regresi pada data ini.

3) CLTV juga dapat diimplementasikan menggunakan nilai RFM (Recency, Frequency, Monetary). Untuk detail lebih lanjut, Anda dapat merujuk ke tutorial saya.

4) Menggunakan persamaan berikut: CLTV = ((Nilai Pesanan Rata-rata x Frekuensi Pembelian)/Churn Rate) x Margin laba.

      Customer Value = Average Order Value * Purchase Frequency
  • Average Order Value (AOV): Nilai pesanan rata-rata adalah rasio antara total pendapatan dan total jumlah pesanan. AOV merepresentasikan jumlah pendapatan rata-rata yang dikeluarkan pelanggan pada satu pesanan.

                         Average Order Value = Total Revenue / Total Number of Orders
    
  • Purchase Frequency (PF): Frekuensi pembelian adalah rasio antara total jumlah pesanan dan total jumlah pelanggan. Ini merepresentasikan jumlah pesanan rata-rata yang dilakukan setiap pelanggan.

                        Purchase Frequency =  Total Number of Orders / Total Number of Customers
    
  • Churn Rate: Churn rate adalah persentase pelanggan yang tidak memesan lagi.

  • Customer Lifetime: Customer lifetime adalah periode waktu ketika pelanggan terus-menerus melakukan pemesanan.

                                  Customer Lifetime=1/Churn Rate
    
  • Repeat Rate: Repeat rate dapat didefinisikan sebagai rasio antara jumlah pelanggan dengan lebih dari satu pesanan terhadap jumlah pelanggan unik. Contoh: Jika Anda memiliki 10 pelanggan dalam sebulan dan 4 di antaranya kembali, repeat rate Anda adalah 40%.

                                   Churn Rate= 1-Repeat Rate
    

Implementasi CLTV di Python (Menggunakan Rumus)

Mengimpor Library yang Diperlukan

#import modules
import pandas as pd # for dataframes
import matplotlib.pyplot as plt # for plotting graphs
import seaborn as sns # for plotting graphs
import datetime as dt
import numpy as np

Memuat Dataset

Mari terlebih dahulu memuat dataset Online Retail yang diperlukan menggunakan fungsi read CSV dari pandas. Anda dapat mengunduh datanya dari sini.

data = pd.read_excel("Online_Retail.xlsx")
data.head()
  InvoiceNo StockCode Description Quantity InvoiceDate UnitPrice CustomerID Country
0 536365 85123A WHITE HANGING HEART T-LIGHT HOLDER 6 2010-12-01 08:26:00 2.55 17850.0 United Kingdom
1 536365 71053 WHITE METAL LANTERN 6 2010-12-01 08:26:00 3.39 17850.0 United Kingdom
2 536365 84406B CREAM CUPID HEARTS COAT HANGER 8 2010-12-01 08:26:00 2.75 17850.0 United Kingdom
3 536365 84029G KNITTED UNION FLAG HOT WATER BOTTLE 6 2010-12-01 08:26:00 3.39 17850.0 United Kingdom
4 536365 84029E RED WOOLLY HOTTIE WHITE HEART. 6 2010-12-01 08:26:00 3.39 17850.0 United Kingdom

Menghapus Duplikat

Terkadang Anda mendapatkan dataset yang berantakan. Anda mungkin harus menangani duplikat, yang akan mengacaukan analisis Anda. Di Python, pandas menyediakan fungsi drop_duplicates(), yang menghapus catatan berulang atau duplikat.

filtered_data=data[['Country','CustomerID']].drop_duplicates()

Mari Masuk ke Insight Data

#Top ten country's customer
filtered_data.Country.value_counts()[:10].plot(kind='bar')
<matplotlib.axes._subplots.AxesSubplot at 0x7fe677a887f0>
bar chart

Pada dataset yang diberikan, Anda dapat melihat sebagian besar pelanggan berasal dari "United Kingdom". Jadi, Anda dapat memfilter data untuk pelanggan United Kingdom.

uk_data=data[data.Country=='United Kingdom']
uk_data.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 495478 entries, 0 to 541893
Data columns (total 8 columns):
InvoiceNo      495478 non-null object
StockCode      495478 non-null object
Description    494024 non-null object
Quantity       495478 non-null int64
InvoiceDate    495478 non-null datetime64[ns]
UnitPrice      495478 non-null float64
CustomerID     361878 non-null float64
Country        495478 non-null object
dtypes: datetime64[ns](1), float64(2), int64(1), object(4)
memory usage: 34.0+ MB

Fungsi describe() di pandas memudahkan untuk mendapatkan berbagai statistik ringkasan. Fungsi ini mengembalikan jumlah, mean, standar deviasi, nilai minimum dan maksimum serta kuantil dari data.

uk_data.describe()
  Quantity UnitPrice CustomerID
count 495478.000000 495478.000000 361878.000000
mean 8.605486 4.532422 15547.871368
std 227.588756 99.315438 1594.402590
min -80995.000000 -11062.060000 12346.000000
25% 1.000000 1.250000 14194.000000
50% 3.000000 2.100000 15514.000000
75% 10.000000 4.130000 16931.000000
max 80995.000000 38970.000000 18287.000000

Di sini, Anda dapat melihat beberapa pelanggan memesan dalam kuantitas negatif, yang tidak mungkin. Jadi, Anda perlu memfilter Quantity lebih besar dari nol.

uk_data = uk_data[(uk_data['Quantity']>0)]
uk_data.info()
<class 'pandas.core.frame.DataFrame'>
Int64Index: 486286 entries, 0 to 541893
Data columns (total 8 columns):
InvoiceNo      486286 non-null object
StockCode      486286 non-null object
Description    485694 non-null object
Quantity       486286 non-null int64
InvoiceDate    486286 non-null datetime64[ns]
UnitPrice      486286 non-null float64
CustomerID     354345 non-null float64
Country        486286 non-null object
dtypes: datetime64[ns](1), float64(2), int64(1), object(4)
memory usage: 33.4+ MB

Filter Kolom yang Diperlukan

Di sini, Anda dapat memfilter kolom yang diperlukan untuk menghitung CLTV. Anda hanya memerlukan lima kolom CustomerID, InvoiceDate, InvoiceNo, Quantity, dan UnitPrice.

  • CustomerID akan secara unik mendefinisikan pelanggan Anda.
  • InvoiceDate membantu Anda menghitung jumlah hari pelanggan bertahan dengan produk Anda.
  • InvoiceNo membantu Anda menghitung berapa kali transaksi dilakukan (frekuensi).
  • Quantity adalah unit barang yang dibeli di setiap transaksi
  • UnitPrice dari setiap unit yang dibeli pelanggan akan membantu Anda menghitung total jumlah pembelian.
uk_data=uk_data[['CustomerID','InvoiceDate','InvoiceNo','Quantity','UnitPrice']]
#Calulate total purchase
uk_data['TotalPurchase'] = uk_data['Quantity'] * uk_data['UnitPrice']

Di sini, Anda akan melakukan operasi berikut:

  • Hitung jumlah hari antara tanggal saat ini dan tanggal pembelian terakhir dari setiap pelanggan.
  • Hitung jumlah pesanan untuk setiap pelanggan.
  • Hitung jumlah harga pembelian untuk setiap pelanggan.
uk_data_group=uk_data.groupby('CustomerID').agg({'InvoiceDate': lambda date: (date.max() - date.min()).days,
                                        'InvoiceNo': lambda num: len(num),
                                        'Quantity': lambda quant: quant.sum(),
                                        'TotalPurchase': lambda price: price.sum()})
uk_data_group.head()
  InvoiceDate InvoiceNo Quantity TotalPurchase
CustomerID        
12346.0 0 1 74215 77183.60
12747.0 366 103 1275 4196.01
12748.0 372 4596 25748 33719.73
12749.0 209 199 1471 4090.88
12820.0 323 59 722 942.34

Ubah Nama Kolom

# Change the name of columns
uk_data_group.columns=['num_days','num_transactions','num_units','spent_money']
uk_data_group.head()
  num_days num_transactions num_units spent_money
CustomerID        
12346.0 0 1 74215 77183.60
12747.0 366 103 1275 4196.01
12748.0 372 4596 25748 33719.73
12749.0 209 199 1471 4090.88
12820.0 323 59 722 942.34

Hitung CLTV menggunakan rumus berikut:

 CLTV = ((Average Order Value x Purchase Frequency)/Churn Rate) x Profit margin.

 Customer Value = Average Order Value * Purchase Frequency

1. Hitung Average Order Value

# Average Order Value
uk_data_group['avg_order_value']=uk_data_group['spent_money']/uk_data_group['num_transactions']
uk_data_group.head()
  num_days num_transactions num_units spent_money avg_order_value
CustomerID          
12346.0 0 1 74215 77183.60 77183.600000
12747.0 366 103 1275 4196.01 40.737961
12748.0 372 4596 25748 33719.73 7.336756
12749.0 209 199 1471 4090.88 20.557186
12820.0 323 59 722 942.34 15.971864

2. Hitung Purchase Frequency

purchase_frequency=sum(uk_data_group['num_transactions'])/uk_data_group.shape[0]

3. Hitung Repeat Rate dan Churn Rate

# Repeat Rate
repeat_rate=uk_data_group[uk_data_group.num_transactions > 1].shape[0]/uk_data_group.shape[0]
#Churn Rate
churn_rate=1-repeat_rate
purchase_frequency,repeat_rate,churn_rate
(90.37107880642694, 0.9818923743942872, 0.018107625605712774)

4. Hitung Profit Margin

Profit margin adalah rasio profitabilitas yang umum digunakan. Ini merepresentasikan berapa persen dari total penjualan yang diperoleh sebagai laba. Misalkan bisnis kita memiliki laba sekitar 5% dari total penjualan.

# Profit Margin
uk_data_group['profit_margin']=uk_data_group['spent_money']*0.05
uk_data_group.head()
  num_days num_transactions num_units spent_money avg_order_value profit_margin
CustomerID            
12346.0 0 1 74215 77183.60 77183.600000 3859.1800
12747.0 366 103 1275 4196.01 40.737961 209.8005
12748.0 372 4596 25748 33719.73 7.336756 1685.9865
12749.0 209 199 1471 4090.88 20.557186 204.5440
12820.0 323 59 722 942.34 15.971864 47.1170

5. Hitung Customer Lifetime Value

# Customer Value
uk_data_group['CLV']=(uk_data_group['avg_order_value']*purchase_frequency)/churn_rate
#Customer Lifetime Value
uk_data_group['cust_lifetime_value']=uk_data_group['CLV']*uk_data_group['profit_margin']
uk_data_group.head()
  num_days num_transactions num_units spent_money avg_order_value profit_margin CLV cust_lifetime_value
CustomerID                
12346.0 0 1 74215 77183.60 77183.600000 3859.1800 3.852060e+08 1.486579e+12
12747.0 366 103 1275 4196.01 40.737961 209.8005 2.033140e+05 4.265538e+07
12748.0 372 4596 25748 33719.73 7.336756 1685.9865 3.661610e+04 6.173424e+07
12749.0 209 199 1471 4090.88 20.557186 204.5440 1.025963e+05 2.098545e+07
12820.0 323 59 722 942.34 15.971864 47.1170 7.971198e+04 3.755789e+06

Model Prediksi untuk CLTV

Mari bangun model prediksi CLTV.

Di sini, Anda akan memprediksi CLTV menggunakan Model Regresi Linier.

Mari gunakan terlebih dahulu data yang dimuat dan difilter di atas.

uk_data.head()
  CustomerID InvoiceDate InvoiceNo Quantity UnitPrice TotalPurchase month_yr
0 17850.0 2010-12-01 08:26:00 536365 6 2.55 15.30 Dec-2010
1 17850.0 2010-12-01 08:26:00 536365 6 3.39 20.34 Dec-2010
2 17850.0 2010-12-01 08:26:00 536365 8 2.75 22.00 Dec-2010
3 17850.0 2010-12-01 08:26:00 536365 6 3.39 20.34 Dec-2010
4 17850.0 2010-12-01 08:26:00 536365 6 3.39 20.34 Dec-2010

Ekstrak bulan dan tahun dari InvoiceDate.

uk_data['month_yr'] = uk_data['InvoiceDate'].apply(lambda x: x.strftime('%b-%Y'))
uk_data.head()
  CustomerID InvoiceDate InvoiceNo Quantity UnitPrice TotalPurchase month_yr
0 17850.0 2010-12-01 08:26:00 536365 6 2.55 15.30 Dec-2010
1 17850.0 2010-12-01 08:26:00 536365 6 3.39 20.34 Dec-2010
2 17850.0 2010-12-01 08:26:00 536365 8 2.75 22.00 Dec-2010
3 17850.0 2010-12-01 08:26:00 536365 6 3.39 20.34 Dec-2010
4 17850.0 2010-12-01 08:26:00 536365 6 3.39 20.34 Dec-2010

Tabel pivot mengambil kolom sebagai masukan, dan mengelompokkan entri ke dalam tabel dua dimensi sehingga memberikan rangkuman multidimensi dari data.

sale=uk_data.pivot_table(index=['CustomerID'],columns=['month_yr'],values='TotalPurchase',aggfunc='sum',fill_value=0).reset_index()
sale.head()
month_yr CustomerID Apr-2011 Aug-2011 Dec-2010 Dec-2011 Feb-2011 Jan-2011 Jul-2011 Jun-2011 Mar-2011 May-2011 Nov-2011 Oct-2011 Sep-2011
0 12346.0 0.00 0.00 0.00 0.00 0.00 77183.60 0.00 0.00 0.00 0.00 0.00 0.00 0.00
1 12747.0 0.00 301.70 706.27 438.50 0.00 303.04 0.00 376.30 310.78 771.31 312.73 675.38 0.00
2 12748.0 1100.37 898.24 4228.13 1070.27 389.64 418.77 1113.27 2006.26 1179.37 2234.50 10639.23 2292.84 6148.84
3 12749.0 0.00 1896.13 0.00 763.06 0.00 0.00 0.00 0.00 0.00 859.10 572.59 0.00 0.00
4 12820.0 0.00 0.00 0.00 210.35 0.00 170.46 0.00 0.00 0.00 0.00 0.00 343.76 217.77

Mari jumlahkan seluruh penjualan per bulan.

sale['CLV']=sale.iloc[:,2:].sum(axis=1)
sale.head()
month_yr CustomerID Apr-2011 Aug-2011 Dec-2010 Dec-2011 Feb-2011 Jan-2011 Jul-2011 Jun-2011 Mar-2011 May-2011 Nov-2011 Oct-2011 Sep-2011 CLV
0 12346.0 0.00 0.00 0.00 0.00 0.00 77183.60 0.00 0.00 0.00 0.00 0.00 0.00 0.00 77183.60
1 12747.0 0.00 301.70 706.27 438.50 0.00 303.04 0.00 376.30 310.78 771.31 312.73 675.38 0.00 4196.01
2 12748.0 1100.37 898.24 4228.13 1070.27 389.64 418.77 1113.27 2006.26 1179.37 2234.50 10639.23 2292.84 6148.84 32619.36
3 12749.0 0.00 1896.13 0.00 763.06 0.00 0.00 0.00 0.00 0.00 859.10 572.59 0.00 0.00 4090.88
4 12820.0 0.00 0.00 0.00 210.35 0.00 170.46 0.00 0.00 0.00 0.00 0.00 343.76 217.77 942.34

Memilih Fitur

Di sini, Anda perlu membagi kolom yang diberikan menjadi dua jenis variabel: variabel dependen (atau variabel target) dan variabel independen (atau variabel fitur). Pilih 6 bulan terakhir sebagai variabel independen.

X=sale[['Dec-2011','Nov-2011', 'Oct-2011','Sep-2011','Aug-2011','Jul-2011']]
y=sale[['CLV']]

Membagi Data

Untuk memahami kinerja model, membagi dataset menjadi train set dan test set adalah strategi yang baik.

Mari bagi dataset menggunakan fungsi train_test_split(). Anda perlu memberikan 3 parameter: fitur, target, dan ukuran test_set. Selain itu, Anda dapat menggunakan random_state sebagai nilai seed untuk menjaga reprodusibilitas, yang berarti kapan pun Anda membagi data tidak akan memengaruhi hasil. Juga, jika random_state None, maka generator angka acak menggunakan np.random untuk memilih catatan secara acak. Artinya jika Anda tidak menyetel seed, hasilnya berbeda setiap kali.

#split training set and test set
from sklearn.cross_validation import train_test_split
X_train, X_test, y_train, y_test = train_test_split(X, y,random_state=0)

Pengembangan Model

Pertama, impor modul Linear Regression dan buat objek Linear Regression. Lalu, latih model Anda pada train set menggunakan fungsi fit() dan lakukan prediksi pada test set menggunakan fungsi predict().

# import model
from sklearn.linear_model import LinearRegression

# instantiate
linreg = LinearRegression()

# fit the model to the training data (learn the coefficients)
linreg.fit(X_train, y_train)

# make predictions on the testing set
y_pred = linreg.predict(X_test)
# print the intercept and coefficients
print(linreg.intercept_)
print(linreg.coef_)
[208.50969617]
[[0.99880551 0.80381254 1.60226829 1.67433228 1.52860813 2.87959449]]

Seberapa Baik Model Memadankan Data?

Untuk mengevaluasi kesesuaian keseluruhan model linier, kita menggunakan nilai R-squared. R-squared adalah proporsi varians yang dijelaskan oleh model. Nilai R-squared berada di antara 0 dan 1. Nilai R-squared yang lebih tinggi dianggap lebih baik karena menunjukkan varians yang lebih besar dijelaskan oleh model.

from sklearn import metrics

# compute the R Square for model
print("R-Square:",metrics.r2_score(y_test, y_pred))
R-Square: 0.9666074402817512

Model ini memiliki R-squared yang tinggi (0,96). Model ini memberikan kecocokan yang lebih baik terhadap data.

Evaluasi Model

Untuk masalah regresi, metrik evaluasi berikut digunakan (Ritchie Ng):

  • Mean Absolute Error (MAE) adalah mean dari nilai absolut error.
  • Mean Squared Error (MSE) adalah mean dari kuadrat error.
  • Root Mean Squared Error (RMSE) adalah akar kuadrat dari mean kuadrat error.
# calculate MAE using scikit-learn
print("MAE:",metrics.mean_absolute_error(y_test,y_pred))

#calculate mean squared error
print("MSE",metrics.mean_squared_error(y_test, y_pred))
# compute the RMSE of our predictions
print("RMSE:",np.sqrt(metrics.mean_squared_error(y_test, y_pred)))
MAE: 595.0282284701234
MSE 2114139.8898678957
RMSE: 1454.0082151995896

RMSE lebih populer daripada MSE dan MAE karena RMSE dapat ditafsirkan dengan y karena memiliki satuan yang sama.

Kelebihan dan Kekurangan CLTV

CLTV membantu Anda menyusun rencana bisnis yang efektif dan juga memberikan kesempatan untuk menumbuhkan bisnis Anda. CLTV menggambar segmen pelanggan yang bermakna; segmen ini dapat membantu Anda mengidentifikasi kebutuhan dari segmen yang berbeda-beda.

Customer Lifetime Value adalah alat, bukan strategi. CLTV dapat mengetahui pelanggan yang paling menguntungkan, tetapi bagaimana Anda akan mendapatkan laba dari mereka bergantung pada strategi Anda. Secara umum, model CLTV sering membingungkan dan disalahgunakan. Obsesi terhadap CLTV dapat menciptakan pandangan yang sempit. Perusahaan hanya fokus mencari kelompok pelanggan terbaik lalu berfokus pada mereka dan mengulang bisnis, tetapi penting juga untuk memberi perhatian kepada pelanggan lainnya.

Kesimpulan

Selamat, Anda telah mencapai akhir dari tutorial ini!

Dalam tutorial ini, Anda telah membahas banyak detail tentang Customer Lifetime Value. Anda telah mempelajari apa itu customer lifetime value, pendekatan untuk menghitung CLTV, implementasi CLTV dari nol di Python, model prediksi untuk CLTV, serta Kelebihan dan Kekurangannya. Anda juga membahas beberapa konsep dasar pandas seperti groupby dan pivot table untuk meringkas kolom dan baris data terpilih.

Semoga sekarang Anda dapat memanfaatkan konsep CLTV untuk menganalisis dataset Anda sendiri. Terima kasih telah membaca tutorial ini!

Jika Anda ingin mempelajari lebih lanjut tentang menganalisis data pelanggan di Python, ikuti kursus DataCamp Customer Analytics & A/B Testing in Python.

Topik
Python
Data Science

Kursus Python

Kursus

Pengantar Python

4 jam
7.1M
Kuasai dasar-dasar analisis data dengan Python dalam 4 jam. Kursus online ini memperkenalkan antarmuka Python dan pustaka populer.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

Lihat SelengkapnyaLihat Selengkapnya