Claude LearnAdvanced· 10 min
Claude API Basics: Integrasi ke Aplikasi
Panduan praktis mengintegrasikan Claude API ke aplikasi Anda — setup, first call, dan best practices.
Claude API Basics: Integrasi ke Aplikasi
Pelajari cara mengintegrasikan Claude ke dalam aplikasi Anda menggunakan Anthropic API.
Setup
1. Dapatkan API Key
- Buka console.anthropic.com
- Sign up atau login
- Buat API key baru di dashboard
- Simpan key dengan aman (jangan commit ke repository!)
2. Install SDK
npm install @anthropic-ai/sdk
3. First API Call
import Anthropic from '@anthropic-ai/sdk';
const anthropic = new Anthropic({
apiKey: process.env.ANTHROPIC_API_KEY,
});
async function chatWithClaude(message: string) {
const response = await anthropic.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
messages: [{ role: 'user', content: message }],
});
return response.content[0].text;
}
Message API
Basic Request
const response = await anthropic.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
system: 'Anda adalah helpful assistant yang spesialis di customer support.',
messages: [
{ role: 'user', content: 'Bagaimana cara reset password saya?' }
],
});
Multi-Turn Conversation
const messages = [
{ role: 'user', content: 'Apa itu TypeScript?' },
{ role: 'assistant', content: 'TypeScript adalah superset JavaScript...' },
{ role: 'user', content: 'Apa bedanya dengan JavaScript?' },
];
const response = await anthropic.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
messages,
});
Streaming Response
const stream = await anthropic.messages.stream({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
messages: [{ role: 'user', content: 'Tulis puisi tentang coding' }],
});
for await (const chunk of stream) {
process.stdout.write(chunk.delta?.text ?? '');
}
Model Selection
| Model | Use Case | Speed | Cost |
|---|---|---|---|
| Claude Haiku | Task sederhana, classification | Fastest | Lowest |
| Claude Sonnet | General purpose, balanced | Fast | Medium |
| Claude Opus | Complex reasoning, analysis | Slower | Highest |
Recommendation
- Default: Claude Sonnet — best balance untuk most use cases
- High volume: Claude Haiku — cost-effective untuk task sederhana
- Complex tasks: Claude Opus — untuk analysis dan reasoning mendalam
Best Practices
1. Error Handling
import { APIError, RateLimitError } from '@anthropic-ai/sdk';
async function safeChat(message: string) {
try {
const response = await anthropic.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 1024,
messages: [{ role: 'user', content: message }],
});
return response.content[0].text;
} catch (error) {
if (error instanceof RateLimitError) {
// Implement retry with exponential backoff
await sleep(2000);
return safeChat(message);
}
if (error instanceof APIError) {
console.error('API Error:', error.status, error.message);
}
throw error;
}
}
2. Token Management
// Estimate token count (rough: 1 token ≈ 4 chars untuk English)
function estimateTokens(text: string): number {
return Math.ceil(text.length / 4);
}
// Pastikan tidak exceed limit
const MAX_CONTEXT_TOKENS = 200000; // Claude context window
function canAddMessage(messages: any[], newMessage: string): boolean {
const currentTokens = messages.reduce(
(sum, msg) => sum + estimateTokens(msg.content), 0
);
return currentTokens + estimateTokens(newMessage) < MAX_CONTEXT_TOKENS;
}
3. System Prompt Design
// Good: spesifik dan actionable
const systemPrompt = `
Anda adalah customer support assistant untuk e-commerce platform.
Guidelines:
- Selalu greet user dengan nama jika tersedia
- Berikan solusi step-by-step
- Jika tidak yakin, acknowledge dan suggest escalation
- Gunakan tone yang friendly tapi professional
- Jangan pernah fabricate information tentang product
`;
Security
- Never expose API key di client-side — selalu call dari server
- Use environment variables —
.envfiles, never hardcoded - Implement rate limiting — prevent abuse di aplikasi Anda
- Validate input — sanitize user input sebelum send ke API
Langkah Selanjutnya
Setelah menguasai API basics:
- Advanced Best Practices — teknik lanjutan untuk production
- Avoid Sycophancy — bagaimana Claude handle agreement vs honesty
🛠️
Build Better
Integrasikan Claude ke aplikasi dan development workflow Anda.