3
Bahasa Pemrograman
## Programming Languages adalah bagian pertama di daftar isi README.md sekaligus bagian terbesar di berkas itu: 43 subbagian ### dan 101 butir tautan, membentang dari baris 14 sampai baris 244 (README.md:14-181). Daftar isi hanya menautkannya satu kali lewat - [Programming Languages](#programming-languages), sehingga seluruh subbagian duduk di bawah satu jangkar (README.md:5-122). Bagian ini berakhir tepat sebelum ## Development Environment pada baris 246 (README.md:242-2503).
Karena 43 subbagian terlalu banyak untuk satu halaman, isinya dipecah ke tiga halaman kelompok: Bahasa Sistem dan Enterprise, Bahasa Web dan Skrip Dinamis, dan Bahasa Fungsional dan Format Data. Halaman ini hanya memetakan taksonomi dan batasnya; daftar tautan per bahasa ada di halaman kelompok masing-masing.
Taksonomi tiga kelompok
graph TD
ROOT["Programming Languages · README.md baris 14"] --> SYS["Bahasa Sistem dan Enterprise · 15 bagian, 44 entri"]
ROOT --> WEB["Bahasa Web dan Skrip Dinamis · 10 bagian, 29 entri"]
ROOT --> FUN["Bahasa Fungsional dan Format Data · 18 bagian, 28 entri"]
SYS --> SYS1["C++ · 8 entri"]
SYS --> SYS2["Swift · 6 entri"]
SYS --> SYS3["Java · 4 entri"]
WEB --> WEB1["JavaScript · 10 entri"]
WEB --> WEB2["TypeScript · 3 entri"]
WEB --> WEB3["Python · 3 entri"]
FUN --> FUN1["Scala · 4 entri"]
FUN --> FUN2["Markdown · 3 entri"]
FUN --> FUN3["JSON · 1 entri"]
style ROOT fill:#f59e0b,color:#000
style SYS fill:#2d7d46,color:#fff
style WEB fill:#2d7d46,color:#fff
style FUN fill:#2d7d46,color:#fff
%% fig: Pemecahan satu bagian jadi tiga halaman kelompok
%% desc: Bagian Programming Languages dipecah menjadi tiga kelompok; setiap kelompok membawa jumlah bagian dan entri terbanyaknya.| Halaman | Subbagian ### | Jumlah bagian | Jumlah entri | Bagian terbesar |
|---|---|---|---|---|
| Bahasa Sistem dan Enterprise | Ada, C, C#, C++, .NET, D, Delphi, Fortran, Go, Java, Objective-C, Pascal, Rust, Swift, Visual Basic | 15 | 44 | C++ (8) |
| Bahasa Web dan Skrip Dinamis | Dart, Groovy, JavaScript, Kotlin, Lua, Perl, PHP, Python, Ruby, TypeScript | 10 | 29 | JavaScript (10) |
| Bahasa Fungsional dan Format Data | Brainfuck, Clojure, Common Lisp, Elixir, Elm, Emacs Lisp, Erlang, F#, Haskell, JSON, Julia, Markdown, Nim, R, Racket, Scala, Solidity, XML | 18 | 28 | Scala (4) |
Pembagian di atas mengikuti bentuk bahasa, bukan urutan baris. Subbagian dari satu kelompok tersebar di seluruh rentang baris 14-244: ### Ada dibuka paling awal (README.md:14-181), ### JavaScript berada di tengah (README.md:116-1274), dan ### XML menutup bagian ini (README.md:242-2503). Tiga subbagian terbesar adalah ### JavaScript dengan sepuluh butir, ### C++ dengan delapan butir (README.md:36-455), dan ### Swift dengan enam butir. Sisanya berkisar satu sampai empat butir.
Bentuk satu entri
Setiap subbagian memakai pola ### <Nama Bahasa> lalu satu sampai sepuluh baris butir berbentuk - [Judul](url) - Deskripsi. (contributing.md:22-266).
| Bentuk | Contoh | Rujukan |
|---|---|---|
| butir lengkap dengan deskripsi | - [Google C++ Style Guide](url) - C++ coding standards and best practices. | README.md:36-455 |
| butir tanpa deskripsi | - [Style Guide](url) | README.md:53-547 |
| heading padat isi | ### JavaScript dengan sepuluh butir | README.md:116-1274 |
Deskripsi setelah tanda - bersifat opsional: contributing.md membolehkan judul yang sudah cukup menjelaskan berdiri tanpa deskripsi (contributing.md:22-266). Empat butir pada bagian ini memakai bentuk itu, yaitu Style Guide dan Google Common Lisp Style Guide (README.md:53-547), Java Programming Style Guide (README.md:111-1148), serta Rust Style Guide (README.md:207-2089). Aturan penambahan tautan baru dan proses pull request-nya dibahas di Panduan Kontribusi dan Kode Etik, sedangkan pemeriksaan otomatisnya dijalankan awesomeLint.report() pada Pipeline Lint dan CI.
Aturan menyebut tautan dan kategori diurutkan menurut abjad (contributing.md:22-266), tetapi bagian ini belum sepenuhnya patuh: ### Emacs Lisp muncul setelah ### Elm (README.md:72-7910), dan ### .NET muncul setelah ### Markdown (README.md:145-15511). Jadi urutan abjad adalah target, bukan kenyataan yang bisa diandalkan saat mencari subbagian.
Batas bagian dan heading yang berulang
graph LR
PL["Programming Languages · baris 14-244"] -->|memuat| ENV["Development Environment · Shell, Git, PowerShell"]
PL -->|memuat| PLATF["Platforms · Android, Apache, API, Arduino"]
PLATF -->|memuat| J2["Java · JavaEE Specification · baris 306"]
PL -->|memuat| FW["Frameworks · tanpa heading ###"]
style PL fill:#f59e0b,color:#000
style ENV fill:#2d7d46,color:#fff
style PLATF fill:#336791,color:#fff
style J2 fill:#dc2626,color:#fff
style FW fill:#8b5cf6,color:#fff
%% fig: Batas bagian dan heading Java yang berulang
%% desc: Shell, Git, dan PowerShell tinggal di Development Environment, sedangkan heading Java muncul lagi di bawah Platforms.Tiga subbagian yang terdengar seperti bahasa justru berada di luar bagian ini: ### Shell (baris 248), ### Git (baris 252), dan ### PowerShell (baris 257) diletakkan di bawah ## Development Environment (README.md:242-2503). Sebaliknya ### Android, ### Apache, ### API, dan ### Arduino berada di bawah ## Platforms (README.md:261-28012). Nama subbagian karena itu tidak cukup menjadi penanda kelompok; heading ## di atasnya yang menentukan.
⚠️ Judul
### Javadipakai dua kali: baris 109 untuk bahasa di bagian ini (README.md:111-1148) dan baris 306 untukJavaEE Specificationdi bawah## Platforms(README.md:306-30813). Jangkar#javahanya menunjuk kemunculan pertama, sehingga tautan menuju konvensi JavaEE harus dirujuk dengan nama lain.
Bentuk bagian lain di berkas ini berbeda: ## Frameworks tidak punya subbagian ### sama sekali dan langsung berisi empat butir (README.md:349-35514). Perbandingan seluruh heading tingkat atas ada di Struktur Repository.