MY.
Web asesmen minat & bakat
siswa SMK jurusan PPLG
Hacker · Designer · Hustler
.SELF
0%
final class ProfileScorer
{
public static function score(array $questions, array $answers): array
{
$earned = $possible = array_fill_keys(['hacker', 'designer', 'hustler'], 0);
foreach ($questions as $id => $question) {
$answer = $answers[$id] ?? null;
if ($question['type'] === 'likert') {
$possible[$question['dimension']] += 5;
$earned[$question['dimension']] += (int) $answer;
}
}
foreach ($possible as $role => $max) {
$scores[$role] = round($earned[$role] / $max * 100, 2);
}
arsort($scores);
return ['scores' => $scores, 'profile' => array_key_first($scores)];
}
}
// git commit -m "mini project: kasir kantin"
const app = createApp({ name: 'kasir-kantin', team: ['hacker', 'designer', 'hustler'] });
app.route('/pesanan', async (req) => kantin.pesan(req.body));
app.listen(4321);
Route::middleware('auth:sanctum')->get('/me/progress', [ProgressController::class, 'mine']);
export function StatCard({ label, value }: { label: string; value: number }) {
return <p className="text-4xl font-semibold">{label}: {value}</p>;
}
SELECT class_name, COUNT(*) AS siswa FROM users WHERE role = 'participant' GROUP BY class_name;
scores = {role: round(earned[role] / possible[role] * 100, 2) for role in possible}
final class ProfileScorer
{
public static function score(array $questions, array $answers): array
{
$earned = $possible = array_fill_keys(['hacker', 'designer', 'hustler'], 0);
foreach ($questions as $id => $question) {
$answer = $answers[$id] ?? null;
if ($question['type'] === 'likert') {
$possible[$question['dimension']] += 5;
$earned[$question['dimension']] += (int) $answer;
}
}
foreach ($possible as $role => $max) {
$scores[$role] = round($earned[$role] / $max * 100, 2);
}
arsort($scores);
return ['scores' => $scores, 'profile' => array_key_first($scores)];
}
}
// git commit -m "mini project: kasir kantin"
const app = createApp({ name: 'kasir-kantin', team: ['hacker', 'designer', 'hustler'] });
app.route('/pesanan', async (req) => kantin.pesan(req.body));
app.listen(4321);
Route::middleware('auth:sanctum')->get('/me/progress', [ProgressController::class, 'mine']);
export function StatCard({ label, value }: { label: string; value: number }) {
return <p className="text-4xl font-semibold">{label}: {value}</p>;
}
SELECT class_name, COUNT(*) AS siswa FROM users WHERE role = 'participant' GROUP BY class_name;
scores = {role: round(earned[role] / possible[role] * 100, 2) for role in possible}
HACKER
>logika & algoritma
- PHP
- Laravel
- React
- JavaScript
- TypeScript
- HTML & CSS
- Tailwind
- MySQL
- Node.js
- Python
- Java
- Kotlin
- Flutter
- Go
- Git
Hacker
Pembangun produk
Peran 1/3Senang memecahkan masalah dengan kode, logika, dan data.
DESIGNER
Designer
Perancang pengalaman
Peran 2/3Peka pada tampilan dan kenyamanan pengguna.
HUSTLER
Hustler
Penggerak ide
Peran 3/3Paham kebutuhan pengguna dan pandai mengajak orang.
SWOT diri
Kenali dirimu dulu
Mulai di siniTulis kekuatan, kelemahan, peluang, dan ancamanmu sebelum memilih peran.
BOOTCAMP
- HackerLogika dan algoritma
- DesignerFigma
- HustlerRiset pengguna
- HackerHTML dan CSS
- DesignerUX dasar
- HustlerPitching 3 menit
Bootcamp Fundamental
Perkuat pondasi
Sampai mini projectModul sesuai peranmu, lalu satu mini project yang dinilai guru.
X → XI
Perjalanan
Lihat dirimu tumbuh
Kelas X sampai XIAsesmen diulang tiap tengah dan akhir semester, dan grafikmu terisi sampai akhir kelas XI.
MULAI
Asesmen muncul di sini begitu periode pengisiannya dimulai. Masuk dulu supaya siap mengisi.
Sedang dibuka
Belum ada asesmen
Pantau lagiJawaban tersimpan otomatis, jadi bisa dilanjutkan dari perangkat lain.