Akses data pendidikan tinggi Indonesia seharusnya mudah dan menyenangkan. Sayangnya, interface yang kompleks sering kali membuat user kesulitan mencari informasi mahasiswa atau dosen. Solusinya? Frontend yang elegan dengan pendekatan user-centric.
Data PDDikti memiliki informasi lengkap tentang pendidikan tinggi Indonesia, namun:
Kami mengembangkan frontend modern yang menyelesaikan masalah tersebut dengan pendekatan yang fokus pada user experience.
1. Pencarian Disederhanakan
2. Data Enhancement
id_pt
→ Nama Perguruan Tinggiid_sms
→ Nama Program Studi3. Design Modern
# Flask untuk handling API calls
from flask import Flask, render_template, request, jsonify
import requests
# Enhanced detail dengan multiple API calls
def get_mahasiswa_detail(self, id_mhs):
# Get basic student data
student_data = self.get_basic_student_data(id_mhs)
# Enhance with PT name
if 'id_pt' in student_data:
pt_name = self.get_pt_name_by_id(student_data['id_pt'])
student_data['nama_perguruan_tinggi'] = pt_name
# Enhance with Prodi name
if 'id_sms' in student_data:
prodi_name = self.get_prodi_name_by_id(student_data['id_sms'])
student_data['nama_program_studi'] = prodi_name
return clean_data
// Modern JavaScript dengan async/await
async function performSearch() {
const response = await fetch('/api/search', {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ type, query, limit })
});
const data = await response.json();
displayResults(data, type);
}
/* Tailwind CSS untuk rapid development */
.classy-shadow {
box-shadow: 0 10px 25px -5px rgba(255, 156, 87, 0.3);
}
.gradient-bg {
background: linear-gradient(135deg, #FF9C57 0%, #FFB380 50%, #E8864A 100%);
}
Problem: API kadang return array, kadang object
Solution: Universal handler yang detect format dan normalize
Problem: User dapat ID seperti "UmQtWx7KohPBYEzh0ziiRT2IAw8A2MpG0K_zMPhomqMbYopiEQieRdmxPU2EkH1uUjo-nQ=="
Solution: Multiple API calls untuk resolve ID ke nama lengkap
Problem: Large dataset slow di mobile
Solution: Limit results dan lazy loading
User Interface (Tailwind CSS + JavaScript)
↓
Flask Backend (Python)
↓
Enhanced Data Processing
↓
PDDikti API (ridwaanhall)
↓
PDDIKTI Database (Kemdiktisaintek)
Before:
After:
Proyek ini merupakan kolaborasi yang saling menguntungkan:
API Development: ridwaanhall
Frontend Development: Andri Wiratmono - Classy Indonesia
Aplikasi dapat di-deploy di berbagai platform:
# Heroku
heroku create classy-pddikti
git push heroku main
# Railway
railway login
railway link
railway up
# Manual Server
gunicorn --bind 0.0.0.0:5000 app:app
Frontend yang baik bukan hanya soal tampilan yang menarik, tetapi juga tentang bagaimana data disajikan dengan cara yang meaningful bagi user. Dengan menggabungkan API yang solid dari ridwaanhall dengan design thinking dari Classy Indonesia, kami berhasil menciptakan platform yang tidak hanya functional, tetapi juga enjoyable untuk digunakan.
Kolaborasi open source seperti ini menunjukkan bagaimana developer Indonesia dapat saling melengkapi skill untuk menciptakan solusi yang bermanfaat bagi komunitas pendidikan.