commit bbcd07213cb068eddca9af7dfafd2d1e7931896c Author: Gray Date: Fri Nov 6 21:21:29 2026 +0700 Tugas Personal Website diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..b90a368 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +node_modules +.next diff --git a/README.md b/README.md new file mode 100644 index 0000000..c78c80f --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +# Personal Website (Next.js) + +Situs personal 5 halaman untuk Assignment 1 Pemrograman Web, dibuat dengan Next.js (App Router) + TypeScript. + +## Menjalankan + +```bash +npm install +npm run dev +``` + +Buka http://localhost:3000 + +## Yang perlu kamu ganti + +1. Teks pribadi: `lib/data.ts` (nama, tagline, pendidikan, hobi, kontak, dll). +2. Foto: timpa file di `public/images/` dengan fotomu sendiri (nama file sama, format .jpg). + Perbarui teks `alt` di `lib/data.ts` agar sesuai isi fotomu. + +## Peta halaman dan metode CSS + +| Route | File | Metode CSS | +| ------------ | ----------------------- | -------------------------------------------- | +| `/` | `app/page.tsx` | Inline saja | +| `/about` | `app/about/page.tsx` | Internal + inline + external + Tailwind | +| `/hobbies` | `app/hobbies/page.tsx` | External saja (`public/styles.css`) | +| `/gallery` | `app/gallery/page.tsx` | Tailwind (CDN) saja | +| `/contact` | `app/contact/page.tsx` | External (alasan ada di komentar halaman) | + +## Catatan penyesuaian ke Next.js + +- Navigasi memakai `` biasa, bukan `next/link`, supaya tiap halaman dimuat penuh seperti situs multipage dan CSS antarhalaman tidak bocor. +- Tidak ada CSS global di `layout.tsx`. +- Komentar HTML asli dirender lewat komponen `HtmlComment` (terlihat di DevTools > Elements). +- Next.js tetap memuat JavaScript bawaannya untuk menjalankan aplikasi. Script tambahan hanya Tailwind CDN. +- Tailwind CDN juga dimuat di `/about` karena halaman itu wajib memakai keempat metode CSS. diff --git a/app/about/page.tsx b/app/about/page.tsx new file mode 100644 index 0000000..8bf861e --- /dev/null +++ b/app/about/page.tsx @@ -0,0 +1,118 @@ +import type { Metadata } from "next"; +import Script from "next/script"; +import { NavExternal } from "../../components/nav"; +import HtmlComment from "../../components/html-comment"; +import { profile, education, skills, quote } from "../../lib/data"; + +export const metadata: Metadata = { title: "Tentang Saya | Personal Website" }; + +// css internal: satu blok + {/* tailwind css: script cdn, dipakai untuk komponen badge di bagian biodata */} +