1. Pengantar Apex dan Salesforce
Apex adalah bahasa pemrograman berorientasi objek yang dikembangkan oleh Salesforce untuk membangun aplikasi dan logika bisnis di platform Salesforce. Dengan Apex, developer dapat membuat custom logic, integrasi, dan automasi yang berjalan di cloud Salesforce.
Salesforce adalah platform CRM terkemuka yang menyediakan berbagai layanan cloud untuk manajemen pelanggan, penjualan, layanan, dan pemasaran.
2. Persiapan Lingkungan Pengembangan
Untuk mulai mengembangkan dengan Apex, Anda memerlukan:
- Salesforce Developer Edition (gratis) - Daftar di sini
- Salesforce CLI (Command Line Interface) - Download
- Visual Studio Code dengan Salesforce Extension Pack - Install
Setelah instalasi, hubungkan VS Code dengan org Salesforce Anda menggunakan perintah:
sfdx force:auth:web:login -a MyDevOrg
3. Dasar-Dasar Bahasa Apex
Apex mirip dengan Java dan C#, dengan sintaks yang mudah dipahami. Berikut contoh program sederhana:
public class HelloWorld {
public static void sayHello() {
System.debug('Halo, Developer Salesforce!');
}
}
Jalankan method ini di Developer Console atau VS Code untuk melihat output.
4. Struktur Kode Apex
Kode Apex terdiri dari kelas, metode, variabel, dan kontrol alur. Contoh kelas dengan metode dan variabel:
public class Calculator {
public Integer add(Integer a, Integer b) {
return a + b;
}
public Integer multiply(Integer a, Integer b) {
return a * b;
}
}
5. Query Data dengan SOQL dan SOSL
SOQL (Salesforce Object Query Language) digunakan untuk mengambil data dari objek Salesforce, sedangkan SOSL (Salesforce Object Search Language) untuk pencarian teks.
// Contoh SOQL
List<Account> accounts = [SELECT Id, Name FROM Account WHERE Industry = 'Technology'];
// Contoh SOSL
List<List<SObject>> searchList = [FIND 'Acme*' IN ALL FIELDS RETURNING Account(Name), Contact(FirstName, LastName)];
6. Membuat dan Mengelola Triggers
Trigger adalah kode Apex yang berjalan otomatis saat data diubah. Contoh trigger untuk Account:
trigger AccountTrigger on Account (before insert, before update) {
for (Account acc : Trigger.new) {
if (acc.Name == null) {
acc.Name = 'Default Account Name';
}
}
}
7. Kelas dan Layanan Apex
Gunakan kelas Apex untuk mengorganisasi logika bisnis dan layanan yang dapat dipanggil dari trigger, Visualforce, atau Lightning Components.
public class AccountService {
public static void updateAccountIndustry(List<Account> accounts, String industry) {
for (Account acc : accounts) {
acc.Industry = industry;
}
update accounts;
}
}
8. Pengujian Unit dan Best Practices
Salesforce mengharuskan minimal 75% coverage kode untuk deployment. Contoh test class:
@isTest
private class AccountServiceTest {
@isTest static void testUpdateAccountIndustry() {
Account acc = new Account(Name='Test Account');
insert acc;
List<Account> accounts = [SELECT Id, Industry FROM Account WHERE Id = :acc.Id];
AccountService.updateAccountIndustry(accounts, 'Technology');
Account updatedAcc = [SELECT Industry FROM Account WHERE Id = :acc.Id];
System.assertEquals('Technology', updatedAcc.Industry);
}
}
9. Deployment dan Manajemen Versi
Gunakan Salesforce CLI dan Change Sets untuk deployment kode Apex antar org. Manfaatkan version control seperti Git untuk manajemen kode.
# Login ke org
sfdx force:auth:web:login -a MyDevOrg
# Deploy kode ke org
sfdx force:source:deploy -p force-app/main/default/classes
# Retrieve kode dari org
sfdx force:source:retrieve -p force-app/main/default/classes
10. Source Code Contoh
Berikut contoh lengkap kelas Apex dan trigger yang bisa Anda gunakan sebagai referensi:
// AccountService.cls
public class AccountService {
public static void setDefaultIndustry(List<Account> accounts) {
for (Account acc : accounts) {
if (acc.Industry == null) {
acc.Industry = 'Technology';
}
}
update accounts;
}
}
// AccountTrigger.trigger
trigger AccountTrigger on Account (before insert, before update) {
if (Trigger.isBefore) {
if (Trigger.isInsert || Trigger.isUpdate) {
AccountService.setDefaultIndustry(Trigger.new);
}
}
}
11. Referensi & Channel Pembelajaran