Compare commits
4 Commits
main
..
b5e1f768a5
| Author | SHA1 | Date | |
|---|---|---|---|
| b5e1f768a5 | |||
| 5aa47b7a43 | |||
| de301fdd4f | |||
| 2dfee8a2b5 |
+349
-52
@@ -646,46 +646,25 @@ const translations = {
|
||||
"Lulusan Informatika UNTAN bukan hanya pencari kerja — mereka pencipta solusi.",
|
||||
grp_jellyfish_career_desc:
|
||||
"Lulusan Prodi Informatika UNTAN diserap secara luas oleh industri teknologi, instansi pemerintah, BUMN, dan startup. Dengan bekal kompetensi digital yang kuat, karir cemerlang menanti di berbagai sektor strategis.",
|
||||
grp_jellyfish_industri: "Perusahaan Swasta & Korporasi",
|
||||
grp_jellyfish_pemerintah: "Pemerintah & Instansi Publik",
|
||||
grp_jellyfish_perguruan_tinggi: "Pendidikan, Organisasi & Lembaga Sosial",
|
||||
|
||||
grp_jellyfish_alumni_badge: "Alumni",
|
||||
grp_jellyfish_alumni_title: "Kisah Sukses Alumni",
|
||||
grp_jellyfish_alumni_subtitle:
|
||||
"Mereka adalah bukti nyata bahwa Informatika UNTAN adalah batu loncatan menuju karir gemilang — dari Pontianak, ke panggung dunia.",
|
||||
|
||||
grp_jellyfish_infra_badge: "Infrastruktur",
|
||||
grp_jellyfish_infra_title: "Infrastruktur dan Fasilitas",
|
||||
grp_jellyfish_infra_subtitle:
|
||||
"Fasilitas lengkap dan modern untuk mendukung proses belajar, penelitian, dan inovasi mahasiswa.",
|
||||
grp_jellyfish_pemerintah: "Instansi Pemerintah",
|
||||
grp_jellyfish_perguruan_tinggi: "Perguruan Tinggi & Lembaga Riset",
|
||||
grp_jellyfish_mitra_pln: "Pembuatan aplikasi monitoring BBM untuk PLN Nusantara Power UP Kapuas (2025).",
|
||||
grp_jellyfish_mitra_diskominfo_kalbar: "Kerja sama dengan Diskominfo Kalbar untuk kerja praktek dan magang 2024-sekarang.",
|
||||
grp_jellyfish_mitra_polda: "Penyelenggaraan CAT (Computer Assesment Test).",
|
||||
grp_jellyfish_mitra_bappeda_sambas: "Pemutakhiran Geoportal Kabupaten Sambas pada infrastruktur Sambas GO.ID (2024).",
|
||||
grp_jellyfish_mitra_bappeda_sintang: "Penyusunan Rencana Induk Sistem Informasi Geospasial kabupaten Sintang 2019, dan Kajian Analisa Dampak Lingkungan TPA dan IPLT.",
|
||||
grp_jellyfish_mitra_bappeda_bengkayang: "Pembangunan Sistem Informasi Perencanaan Pembangunan Berbasis Data Geospasial dan Pendampingan Penyelenggaraan Informasi Geospasial Bagi Pemerintahan Daerah/Simpul Jaringan 2022.",
|
||||
grp_jellyfish_mitra_bkpsdm: "Pengembangan dan pemeliharaan aplikasi E-Kinerja untuk manajemen kinerja aparatur sipil negara (2024).",
|
||||
grp_jellyfish_mitra_bpbd_sintang: "Pembuatan peta potensi daerah rawan bencana banjir Kabupaten Sintang sebagai referensi mitigasi (2022).",
|
||||
grp_jellyfish_mitra_bkd_pontianak: "Pengadaan Peta GIS PBB-P2 Tahap II untuk pengelolaan data pajak bumi dan bangunan Kota Pontianak (2022).",
|
||||
grp_jellyfish_mitra_disperkim_singkawang: "Review baseline dan pemetaan kawasan permukiman kumuh Kota Singkawang (2020).",
|
||||
grp_jellyfish_mitra_diskominfo_singkawang: "Kerja sama dengan Diskominfo Singkawang untuk kerja praktek dan magang 2024-sekarang.",
|
||||
grp_jellyfish_mitra_diskominfo_pontianak: "Kerja sama dengan Diskominfo Pontianak untuk kerja praktek dan magang 2024-sekarang.",
|
||||
grp_jellyfish_mitra_balitbang: "Pengembangan Dan Pemanfaatan Informasi Geospasial untuk Kelitbangan di Provinsi Kalbar.",
|
||||
grp_jellyfish_mitra_unimas: "Kerja sama pelaksanaan Study Excursion 2019-2025.",
|
||||
grp_jellyfish_mitra_uum: "Kerja sama menyelenggarakan konferensi internasional (ICODSE) - 2019.",
|
||||
grp_jellyfish_mitra_ucs: "Kerja sama menyelenggarakan konferensi internasional (ICODSE) - 2019.",
|
||||
grp_jellyfish_mitra_utem: "Kerjasama penyelenggaraan konferensi nasional.",
|
||||
grp_jellyfish_mitra_ipb: "Kerja sama menyelenggarakan konferensi internasional (ICODSE) - 2019.",
|
||||
grp_jellyfish_mitra_polnep: "Kerja sama dengan Politeknik Negeri Pontianak untuk kerja praktek dan magang 2024-sekarang.",
|
||||
grp_jellyfish_mitra_poltekkes: "Rancangan kerja sama program Informatika dengan Politeknik Kesehatan Kemenkes Pontianak (2025).",
|
||||
grp_jellyfish_video_profil: "Video Profil",
|
||||
grp_jellyfish_profil_ft: "Profil Fakultas Teknik UNTAN",
|
||||
grp_jellyfish_video_desc:"Kenali lebih dekat Fakultas Teknik Universitas Tanjungpura melalui video profil resmi berikut.",
|
||||
grp_jellyfish_watch: "Tonton di YouTube",
|
||||
|
||||
grp_limaem_hero_badge: "KOMUNITAS & KEPEMIMPINAN",
|
||||
grp_limaem_hero_title: "Kehidupan Mahasiswa & <span style=\"color:#f5c82f;\">Himpunan (HMIF)</span>",
|
||||
grp_limaem_hero_desc: "Membangun ekosistem kolaboratif di mana teknologi bertemu dengan kreativitas, membentuk calon pemimpin industri masa depan.",
|
||||
grp_limaem_hero_btn: "Lihat Struktur Kepengurusan",
|
||||
grp_jellyfish_infra_badge: "Infrastruktur",
|
||||
grp_jellyfish_infra_title: "Infrastruktur dan Fasilitas",
|
||||
grp_jellyfish_infra_subtitle:
|
||||
"Fasilitas lengkap dan modern untuk mendukung proses belajar, penelitian, dan inovasi mahasiswa.",
|
||||
|
||||
grp_jellyfish_partner_badge: "Kerjasama",
|
||||
grp_jellyfish_partner_title: "Mitra Strategis Informatika UNTAN",
|
||||
@@ -918,6 +897,338 @@ const translations = {
|
||||
grp_limaem_divisi_b6_desc:
|
||||
"Divisi ini mengembangkan unit usaha organisasi, merancang skema pendanaan kreatif, dan menjalin kemitraan strategis untuk mendukung keberlanjutan program HMIF. Unit kerjanya meliputi riset peluang usaha, penyusunan proposal kemitraan, dan pengelolaan sponsor untuk meningkatkan kemandirian finansial dan akses jaringan profesional.",
|
||||
|
||||
grp_jellyfish_info_kontak: "Contact Information",
|
||||
grp_jellyfish_alamat: "Address",
|
||||
grp_jellyfish_tanggal: "Monday – Friday, 08.00 – 16.00 WIB",
|
||||
grp_jellyfish_telepon: "Phone / Fax",
|
||||
grp_jellyfish_video_profil: "Profile Video",
|
||||
grp_jellyfish_profil_ft: "Faculty of Engineering UNTAN Profile",
|
||||
grp_jellyfish_video_desc:"Know more about UNTAN Faculty of Engineering through this official profile video.",
|
||||
grp_jellyfish_watch: "Watch in YouTube",
|
||||
|
||||
kontrib_guideline_5: "The editorial team reserves the right",
|
||||
ape_breadcrumb_profile: "Profile",
|
||||
ape_breadcrumb_scholarship: "Scholarship",
|
||||
ape_hero_badge: "Scholarship Program",
|
||||
ape_hero_title: "Study & Research<br>Scholarships",
|
||||
ape_hero_subtitle: "Informatics Engineering, Tanjungpura University",
|
||||
ape_hero_desc: "Discover various scholarship opportunities to support your academic and research journey. The Informatics Study Program at UNTAN is committed to helping students achieve excellence.",
|
||||
ape_hero_cta: "View Scholarships",
|
||||
ape_stats_total: "Total Scholarship<br>Recipients This Semester",
|
||||
ape_stats_s1: "Total Undergraduate<br>Scholarship Recipients",
|
||||
ape_stats_studi: "Total Postgraduate<br>Scholarship Recipients",
|
||||
ape_dir_label: "Scholarship Directory",
|
||||
ape_dir_title: "Scholarship Directory",
|
||||
ape_dir_desc: "Find various scholarships from official sources available for active students, alumni, and prospective students of the UNTAN Informatics Study Program.",
|
||||
ape_dir_guide: "Need Scholarship Aid?",
|
||||
ape_filter_s1: "Undergraduate",
|
||||
ape_filter_studi: "Postgraduate",
|
||||
ape_search_placeholder: "Search Scholarship Name...",
|
||||
ape_testimonial_title: "What They Say?",
|
||||
ape_testimonial_desc: "Inspiring stories from scholarship recipients at UNTAN Informatics Study Program",
|
||||
ape_cta_title: "Want to Know More?",
|
||||
ape_cta_desc: "Contact the program admin for the latest scholarship and academic program information.",
|
||||
ape_cta_btn1: "SCHOLARSHIP LIST",
|
||||
ape_cta_btn2: "Contact Us",
|
||||
grp_habisiniseminar_page_title: "New Student Admission Informatics UNTAN | Group 02",
|
||||
grp_habisiniseminar_brand: "Informatics UNTAN New Student Admission",
|
||||
grp_habisiniseminar_badge: "Static Page",
|
||||
grp_habisiniseminar_hero_title_1: "New Student Admission",
|
||||
grp_habisiniseminar_hero_title_2: "Informatics UNTAN",
|
||||
grp_habisiniseminar_hero_description: "Information and schedule for new student registration via the SNBP, SNBT, and UNTAN Independent Pathways",
|
||||
grp_habisiniseminar_meta_group: "Group 02",
|
||||
grp_habisiniseminar_about_title: "Undergraduate Program Selection",
|
||||
grp_habisiniseminar_about_desc: "The Informatics Study Program at Tanjungpura University opens opportunities for the nation's best students to join through various selection pathways. We seek talented individuals ready to become future technology innovators.",
|
||||
grp_habisiniseminar_path_snbp_desc: "National Selection Based on Achievement",
|
||||
grp_habisiniseminar_path_snbt_desc: "National Selection Based on Test",
|
||||
grp_habisiniseminar_path_smmptn_desc: "Western Region Joint Independent Selection",
|
||||
grp_habisiniseminar_path_mandiri_desc: "Tanjungpura University Independent Selection",
|
||||
grp_habisiniseminar_info_jalur_title: "Selection Pathway Information",
|
||||
grp_habisiniseminar_sidebar_heading: "Choose Pathway",
|
||||
grp_habisiniseminar_sidebar_data_date: "*Data used as of May 2026",
|
||||
grp_habisiniseminar_sidebar_link_general: "General Information",
|
||||
grp_habisiniseminar_sidebar_link_persyaratan: "Requirements",
|
||||
grp_habisiniseminar_sidebar_link_mekanisme: "Process",
|
||||
grp_habisiniseminar_sidebar_link_jadwal: "Schedule",
|
||||
grp_habisiniseminar_sidebar_link_biaya: "Registration & Education Fees",
|
||||
grp_habisiniseminar_sidebar_link_beasiswa: "Scholarships",
|
||||
grp_habisiniseminar_snbp_title: "SNBP – National Selection Based on Achievement",
|
||||
grp_habisiniseminar_info_snbp: "The National Selection Based on Achievement (SNBP) is a state university (PTN) admission pathway organized nationally by SNPMB. SNBP uses a selection mechanism based on secondary-school learning outcomes, including grade reports, academic and non-academic achievements, and additional criteria set by each PTN. This scheme aims to give opportunities to students with outstanding and consistent achievement records. SNBP is an integral part of the government's effort to create an objective, transparent selection process that strengthens school-level learning.",
|
||||
grp_habisiniseminar_acc_snbp_req_general: "General Requirements to Register for SNBP",
|
||||
grp_habisiniseminar_acc_snbp_ketentuan: "SNPMB Regulations",
|
||||
grp_habisiniseminar_acc_snbp_req_accepted: "General Requirements to be Accepted via SNBP",
|
||||
grp_habisiniseminar_snbp_req_general_body: "<ul class=\"req-list\"><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Must be a final-year student of SMA/SMK/MA in the <strong>current period</strong> with <strong>outstanding achievement</strong>.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Must possess a NISN and be <strong>registered in PDSS</strong>.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Must have <strong>grade report scores</strong> entered in PDSS in accordance with the applicable requirements.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Must have demonstrable <strong>academic achievements</strong>.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Must meet additional requirements set by each Academic PTN and Vocational PTN.</span></li></ul>",
|
||||
grp_habisiniseminar_snbp_ketentuan_body: "<ul class=\"req-list\"><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Students who have been accepted through the SNBP pathway are not eligible to register for UTBK-SNBT.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Students accepted through SNBP may not apply for any Independent (Mandiri) pathway selection at any PTN during the same period.</span></li></ul>",
|
||||
grp_habisiniseminar_snbp_req_accepted_body: "<ul class=\"req-list\"><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicant has graduated from SMA/SMK/MA or equivalent secondary education</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicant has been declared accepted through SNBP in the current period</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicant has passed data verification and meets any additional requirements set by each PTN</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicant completes re-registration at the accepting PTN in accordance with applicable regulations</span></li></ul>",
|
||||
grp_habisiniseminar_snbp_mekanisme_text: "<p class=\"mek-text\">The National Selection Based on Achievement (SNBP) at Tanjungpura University evaluates students' overall academic performance through grade reports, along with achievements that add value to the selection. Evaluated components include:</p><ul class=\"mek-check-list\"><li><span class=\"req-check\" style=\"margin-top: 2px\"><i class=\"fas fa-check\"></i></span><span><strong>Grade reports:</strong> the average score across all subjects, including those relevant to the chosen study program.</span></li><li><span class=\"req-check\" style=\"margin-top: 2px\"><i class=\"fas fa-check\"></i></span><span><strong>Academic and non-academic achievements:</strong> accomplishments in academic competitions (e.g., olympiads or science contests) as well as non-academic fields (e.g., sports, arts, organizations, and extracurricular activities).</span></li></ul>",
|
||||
grp_habisiniseminar_tl_snbp_1: "School quota announcement and appeal period",
|
||||
grp_habisiniseminar_tl_snbp_2: "Account registration and PDSS data entry by schools",
|
||||
grp_habisiniseminar_tl_snbp_3: "Student SNPMB account registration",
|
||||
grp_habisiniseminar_tl_snbp_4: "SNBP registration",
|
||||
grp_habisiniseminar_tl_snbp_5: "SNBP results announcement",
|
||||
grp_habisiniseminar_tl_snbp_6: "Download SNBP participant card",
|
||||
grp_habisiniseminar_snbp_fee_desc: "UKT is divided into several categories adjusted to the student's family economic capacity and is <strong>paid every semester</strong>.",
|
||||
grp_habisiniseminar_fee_highlight_snbp: "Students admitted through SNBP using KIP-Kuliah will be verified and may be eligible for UKT exemption in accordance with KIP-Kuliah and UNTAN regulations.",
|
||||
grp_habisiniseminar_snbp_beasiswa_desc: "Students may obtain scholarships from various sources, with application mechanisms according to the rules of each scholarship provider.",
|
||||
grp_habisiniseminar_snbt_title: "SNBT – National Selection Based on Test",
|
||||
grp_habisiniseminar_info_snbt: "The National Selection Based on Test (SNBT) is a PTN admission pathway that uses a nationally standardized examination. Participants take a series of tests measuring academic potential, reasoning ability, and readiness for higher education. SNBT assessment is based entirely on test scores — admission is not influenced by economic background, school type (public or private), or regional location. All participants are evaluated on the same standard, ensuring a fair and transparent process. SNBT is one of SNPMB's primary instruments for guaranteeing meritocratic, accountable, and inclusive access to higher education.",
|
||||
grp_habisiniseminar_acc_snbt_req_general: "General Requirements to Register for SNBT",
|
||||
grp_habisiniseminar_acc_snbt_utbk: "SNPMB Regulations",
|
||||
grp_habisiniseminar_acc_snbt_req_prodi: "General Requirements to be Accepted via SNBT",
|
||||
grp_habisiniseminar_snbt_req_general_body: "<ul class=\"req-list\"><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants must have a <strong>Student SNPMB Account</strong>. Registration can be done on the SNPMB Portal.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants must be <strong>Indonesian citizens (WNI)</strong> with a valid <strong>National Identity Number (NIK)</strong>.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants must be final-year students of SMA/SMK/MA or equivalent, or Paket C students aged <strong>no more than 25 years</strong>.</span></li><li class=\"req-list-item--nested\"><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><div class=\"req-list-content\"><p class=\"req-list-text\">Applicants who <strong>have not yet received their diploma</strong> must submit a <strong>Grade 12 student certificate</strong> containing at minimum:</p><ul class=\"req-sublist\"><li>Personal identity (name, class, NISN, and NPSN)</li><li>Most recent <strong>colour</strong> photograph</li><li>Signature of the School/Madrasah Principal</li><li>Official school stamp/seal</li></ul></div></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Overseas graduates of SMA or equivalent must hold a recognized equivalent certificate.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants choosing study programs in the fields of <strong>Arts and/or Sports</strong> must upload a portfolio.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants must be in a health condition that does not interfere with the study process.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants with visual impairment (<strong>tunanetra</strong>) must upload a <strong>Visual Impairment Declaration Letter</strong>.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants must pay the UTBK fee as required.</span></li></ul>",
|
||||
grp_habisiniseminar_snbt_ketentuan_body: "<ul class=\"req-list\"><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants must have a Student SNPMB Account. Registration can be done on the SNPMB Portal.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants must be Indonesian citizens (WNI) with a valid National Identity Number (NIK).</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants must be final-year SMA/SMK/MA students or equivalent, or 2026 Paket C students aged no more than 25 years.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants choosing Arts and/or Sports study programs must upload a portfolio.</span></li></ul>",
|
||||
grp_habisiniseminar_snbt_req_accepted_body: "<ul class=\"req-list\"><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicant has graduated from SMA/SMK/MA or equivalent secondary education.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicant has been officially accepted through SNBT selection.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicant has passed data verification and meets any additional requirements set by each PTN.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicant completes re-registration at the accepting PTN in accordance with applicable regulations.</span></li></ul>",
|
||||
grp_habisiniseminar_snbt_mekanisme_full: "<p class=\"mek-text\">The National Selection Based on Test (SNBT) is conducted through the Computer-Based Written Examination (UTBK), a standardized test measuring cognitive potential, mathematical reasoning, and literacy skills in both Indonesian and English. UTBK aims to assess logical thinking, problem-solving, and high learning readiness so that students can handle the material taught in specific study programs. Equal opportunities are also created for all applicants regardless of their economic background or the quality of their previous school.</p><ul class=\"mek-check-list\"><li class=\"req-list-item--nested\"><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><div class=\"req-list-content\"><p class=\"req-list-text\"><strong>Scholastic Potential Test (TPS)</strong> measures the cognitive abilities required for success in formal higher education. Tested aspects include:</p><ul class=\"req-sublist\"><li><strong>General reasoning ability</strong>, covering inductive, deductive, and quantitative reasoning</li><li>General knowledge and understanding</li><li>Reading comprehension and writing</li><li><strong>Quantitative Knowledge</strong>, covering basic mathematics knowledge and mastery</li></ul></div></li><li class=\"req-list-item--nested\"><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><div class=\"req-list-content\"><p class=\"req-list-text\"><strong>Literacy Test</strong> measures applicants' ability to think using mathematical concepts, procedures, facts, and tools to solve everyday problems. Tested materials include:</p><ul class=\"req-sublist\"><li>Literacy in <strong>Indonesian</strong></li><li>Literacy in <strong>English</strong></li><li><strong>Mathematical Reasoning</strong></li></ul></div></li></ul><p class=\"mek-text\">The mathematical reasoning section assesses applicants' ability to apply mathematical concepts and procedures to solve contextual problems, and to evaluate and reflect on information so it can be used effectively in daily life. SNBT test instruments are developed by education assessment experts, taking into account technical aspects such as time allocation and difficulty level, so that results objectively and measurably reflect each applicant's true ability.</p>",
|
||||
grp_habisiniseminar_tl_snbt_1: "Student SNPMB Account Registration",
|
||||
grp_habisiniseminar_tl_snbt_2: "SNBT Registration",
|
||||
grp_habisiniseminar_tl_snbt_3: "UTBK Fee Payment",
|
||||
grp_habisiniseminar_tl_snbt_4: "UTBK Examination",
|
||||
grp_habisiniseminar_tl_snbt_5: "SNBT Results Announcement",
|
||||
grp_habisiniseminar_tl_snbt_6: "UTBK Certificate Download Period",
|
||||
grp_habisiniseminar_fee_highlight_snbt: "Students admitted through SNBT using KIP-Kuliah will be verified and may be eligible for UKT exemption in accordance with KIP-Kuliah and UNTAN regulations.",
|
||||
grp_habisiniseminar_snbt_beasiswa_desc: "SNBT students are also eligible to apply for various scholarship programs according to each provider's terms and conditions.",
|
||||
grp_habisiniseminar_smmptn_title: "SMMPTN West – Western Region Joint Independent Selection",
|
||||
grp_habisiniseminar_info_smmptn: "The Independent Selection for State Universities in the Western Region (SMMPTN-Barat) is an independent selection process held jointly by several state universities in the western region of Indonesia, utilizing computer-based exams as the basis for assessment. This process provides additional opportunities for high school graduates who have not been accepted through the National Selection Based on Achievement (SNBP) or National Selection Based on Tests (SNBT), either due to limited quotas or inappropriate selection of study programs and state universities. Furthermore, SMMPTN-Barat also serves as an alternative for participants who do not yet have an SNPMB account to still participate in the state university entrance selection process.",
|
||||
grp_habisiniseminar_smmptn_persyaratan_list: "<ul class=\"req-list\"><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants must be graduates of SMA/SMK/MA or equivalent within the <strong>last 3 years</strong>, or hold a Paket C certificate with a maximum age of <strong>25 years</strong>.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants may select up to <strong>2 (two)</strong> study programs at one PTN or at two different PTNs — not necessarily located at the UTBK test centre — with the order of choices indicating priority.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>The examination is administered as a <strong>Computer-Based Written Test (UTBK)</strong>.</span></li></ul>",
|
||||
grp_habisiniseminar_smmptn_mekanisme_full: "<p class=\"mek-text\">The SMMPTN-West selection mechanism is carried out through a computer-based written examination designed to assess the academic ability and higher-education readiness of applicants. The exam uses a standardized testing approach focused on cognitive ability, literacy, and reasoning, ensuring that applicants have critical thinking skills, problem-solving ability, and strong learning capacity. The main types of material covered in the exam are as follows:</p><ul class=\"mek-check-list\"><li class=\"req-list-item--nested\"><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><div class=\"req-list-content\"><p class=\"req-list-text\"><strong>Scholastic Potential Test (TPS)</strong> measures the cognitive abilities needed to succeed in formal higher education. Tested aspects include:</p><ul class=\"req-sublist\"><li>General Reasoning Ability</li><li>Quantitative Ability covering knowledge and mastery of basic mathematics</li><li>General Knowledge and Understanding</li><li>Reading Comprehension and Writing Ability</li></ul></div></li><li><span class=\"req-check\" style=\"margin-top: 2px\"><i class=\"fas fa-check\"></i></span><span><strong>Literacy Test</strong> aims to measure applicants' ability to understand, use, evaluate, and reflect on various types of texts in order to solve problems and develop individual capacity as citizens of Indonesia and of the world. The test covers literacy in Indonesian and literacy in English.</span></li><li><span class=\"req-check\" style=\"margin-top: 2px\"><i class=\"fas fa-check\"></i></span><span><strong>Mathematical Reasoning</strong> measures the ability to think using mathematical concepts, procedures, facts, and tools to solve everyday problems across various types of contexts relevant to individuals as citizens of Indonesia and of the world.</span></li></ul>",
|
||||
grp_habisiniseminar_tl_smmptn_1: "Online registration",
|
||||
grp_habisiniseminar_tl_smmptn_2: "SMMPTN UTBK Examination",
|
||||
grp_habisiniseminar_tl_smmptn_3: "SMMPTN Selection Results Announcement",
|
||||
grp_habisiniseminar_smmptn_beasiswa_desc: "Various scholarships are available to students admitted via the SMMPTN-West pathway and may be applied for after the admission process is complete.",
|
||||
grp_habisiniseminar_mandiri_title: "Mandiri UNTAN – Tanjungpura University Independent Selection",
|
||||
grp_habisiniseminar_info_mandiri: "UNTAN Mandiri Selection is a new student admission pathway organized directly by Tanjungpura University. This pathway serves as an alternative for prospective students wishing to study at UNTAN through the selection mechanism established by the university in accordance with applicable regulations.",
|
||||
grp_habisiniseminar_mandiri_persyaratan_list: "<ul class=\"req-list\"><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants must be graduates of SMA/SMK/MA or equivalent within the <strong>last 3 years</strong>, or hold a Paket C certificate with a maximum age of 25 years.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span><strong>Morning and International classes</strong> are open to graduates from the last three years.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span><strong>Afternoon and Evening classes</strong> have no graduation year restriction for Paket C graduates.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Applicants must be in adequate health to participate in the university learning process.</span></li><li><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><span>Certain study programs, such as Medicine and Physical Education, have specific requirements (e.g., no colour blindness) that must be certified by a specialist doctor or government authority.</span></li></ul>",
|
||||
grp_habisiniseminar_mandiri_mekanisme_full: "<p class=\"mek-text\">Admission for Diploma and Bachelor's programs through the UNTAN Mandiri Selection pathway is based on Computer-Based Written Examination (UTBK) results and/or additional tests according to the chosen study program. Below are the details of the examinations and additional tests conducted:</p><ul class=\"mek-check-list\"><li class=\"req-list-item--nested\"><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><div class=\"req-list-content\"><p class=\"req-list-text\"><strong>Computer-Based Written Examination (UTBK)</strong> covering the following material:</p><ul class=\"req-sublist\"><li>Verbal reasoning</li><li>Quantitative ability</li><li>Problem solving</li><li>Indonesian literacy</li><li>English literacy</li><li>Numeracy</li></ul></div></li><li class=\"req-list-item--nested\"><span class=\"req-check\"><i class=\"fas fa-check\"></i></span><div class=\"req-list-content\"><p class=\"req-list-text\"><strong>Additional Tests:</strong></p><ul class=\"req-sublist\"><li>Skills examination for the Performing Arts Education, Physical Education, and Sports Coaching Education (PKO) study programs.</li><li>The Performing Arts Education skills test covers knowledge and skill assessments in the relevant art field.</li><li>The Physical Education and Sports Coaching Education (PKO) skills test includes a medical examination and motor skill assessment.</li><li>Psychological test and interview for applicants to the Medicine study program.</li></ul></div></li></ul><p class=\"mek-text\">Applicants who are <strong>absent</strong> during the UTBK and/or Additional Tests are considered to have <strong>withdrawn</strong> from the UNTAN Mandiri Selection process. Applicants under the affirmative action, achievement, or talent scouting pathways will be verified through an interview.</p>",
|
||||
grp_habisiniseminar_tl_mandiri_1: "UNTAN Mandiri Selection Registration",
|
||||
grp_habisiniseminar_tl_mandiri_2: "PIN Generation",
|
||||
grp_habisiniseminar_tl_mandiri_3: "UTBK Examination — Mandiri Selection Pathway",
|
||||
grp_habisiniseminar_tl_mandiri_4: "Additional Tests",
|
||||
grp_habisiniseminar_tl_mandiri_5: "Interviews for Affirmative Action, Achievement, and Talent Scouting Pathways",
|
||||
grp_habisiniseminar_tl_mandiri_6: "Mandiri Selection Results Announcement",
|
||||
grp_habisiniseminar_mandiri_beasiswa_desc: "Mandiri pathway students at UNTAN can access various scholarship programs according to the eligibility criteria and application mechanisms of each provider.",
|
||||
grp_habisiniseminar_section_persyaratan: "Requirements",
|
||||
grp_habisiniseminar_section_mekanisme: "Admission Process",
|
||||
grp_habisiniseminar_section_jadwal: "Registration Schedule",
|
||||
grp_habisiniseminar_section_biaya: "Registration & Education Fees",
|
||||
grp_habisiniseminar_section_beasiswa: "Scholarships",
|
||||
grp_habisiniseminar_chart_title: "Applicants and Capacity per Year",
|
||||
grp_habisiniseminar_chart_legend_applicants: "Number of Applicants",
|
||||
grp_habisiniseminar_chart_legend_capacity: "Capacity",
|
||||
grp_habisiniseminar_acc_biaya_pendaftaran: "Registration Fees",
|
||||
grp_habisiniseminar_acc_biaya_pendidikan: "Education Fees",
|
||||
grp_habisiniseminar_acc_biaya_ipi: "Institutional Development Fee (IPI)",
|
||||
grp_habisiniseminar_fee_selection: "Selection Fee",
|
||||
grp_habisiniseminar_fee_snbt_utbk: "UTBK Fee",
|
||||
grp_habisiniseminar_fee_smmptn: "SMMPTN Examination Fee",
|
||||
grp_habisiniseminar_fee_smmptn_payment_note: "Registration fees are paid during the online registration process through designated partner banks: Bank Mandiri, Bank BNI, Bank BTN, and Bank BSI. Registration fees that have been paid <strong>CANNOT</strong> be refunded under any circumstances.",
|
||||
grp_habisiniseminar_fee_mandiri_utbk: "Computer-Based Written Test (UTBK) Fee — Mandiri Pathway",
|
||||
grp_habisiniseminar_fee_mandiri_keterampilan: "Additional Skill Test Fee (Performing Arts Education, Physical Education, and Sports Coaching Education (PKO) study programs)",
|
||||
grp_habisiniseminar_fee_mandiri_wawancara: "Additional Interview Fee (Medicine Study Program)",
|
||||
grp_habisiniseminar_fee_mandiri_psikologi: "Additional Psychological Test Fee (Medicine Study Program)",
|
||||
grp_habisiniseminar_fee_mandiri_payment_note: "All fees are paid through Bank Kalbar host-to-host transfer or teller services. Please note that fees already paid cannot be modified or refunded for any reason.",
|
||||
grp_habisiniseminar_fee_col_group: "UKT Category",
|
||||
grp_habisiniseminar_fee_col_cost: "Cost (IDR)",
|
||||
grp_habisiniseminar_fee_col_ipi_group: "IPI Group",
|
||||
grp_habisiniseminar_fee_desc_ukt: "Single Tuition Fee (UKT) is charged to all new Diploma and Bachelor's program students and is <strong>paid every semester</strong> throughout the study period in accordance with the Tanjungpura University academic calendar.",
|
||||
grp_habisiniseminar_fee_highlight_ukt: "UKT amounts are divided into several groups determined by the economic capacity of the student, parents, or other parties funding the student's education.",
|
||||
grp_habisiniseminar_fee_ipi_desc: "The Institutional Development Fee (IPI) applies exclusively to students <strong>admitted through the SMMPTN-West and Mandiri pathways</strong>. IPI is paid once during the entire study period and may be paid in installments over up to <strong>four semesters</strong>.",
|
||||
grp_habisiniseminar_fee_ipi_highlight: "Students admitted through the SNBP and SNBT pathways are exempt from the IPI.",
|
||||
grp_habisiniseminar_scholar_kip: "Indonesia Smart Card for College",
|
||||
grp_habisiniseminar_scholar_kipk: "KIP-Kuliah",
|
||||
grp_habisiniseminar_scholar_bca: "BCA Scholarship",
|
||||
grp_habisiniseminar_scholar_djarum: "Djarum Plus Scholarship",
|
||||
grp_habisiniseminar_scholar_genbi: "Bank Indonesia Scholarship",
|
||||
grp_habisiniseminar_scholar_adik: "ADik Scholarship for Papua & 3T",
|
||||
grp_habisiniseminar_scholar_kip_desc: "KIP-Kuliah is exclusively aimed at students who are economically disadvantaged.",
|
||||
grp_habisiniseminar_scholar_bca_desc: "A scholarship in the form of the Informatics Engineering Education Program (PPTI) organized by BCA.",
|
||||
grp_habisiniseminar_scholar_djarum_desc: "Digital talent development scholarship from Djarum Foundation for 4th-semester students and above.",
|
||||
grp_habisiniseminar_scholar_genbi_desc: "A scholarship from Bank Indonesia that provides educational support and self-development opportunities for outstanding students.",
|
||||
grp_habisiniseminar_scholar_adik_desc: "Affirmation scholarship for students from Papua, West Papua, and underdeveloped, frontier, and outermost regions.",
|
||||
grp_habisiniseminar_scholar_kipk_desc: "A government program for economically disadvantaged yet high-achieving students.",
|
||||
grp_habisiniseminar_scholar_bca_snbt_desc: "The Informatics Engineering Education Program (PPTI) organized by BCA for selected students.",
|
||||
grp_habisiniseminar_scholar_unggulan_desc: "A scholarship from the Ministry of Education for students with national or international-level achievements.",
|
||||
grp_habisiniseminar_scholar_untan_smmptn_desc: "Awarded to new students with the highest selection scores from the SMMPTN-West pathway.",
|
||||
grp_habisiniseminar_scholar_bca_mandiri_desc: "BCA's Informatics Engineering Education Program (PPTI) for students with outstanding academic achievement.",
|
||||
grp_habisiniseminar_scholar_untan_mandiri_desc: "A scholarship from UNTAN for new students achieving the highest selection scores via the Mandiri pathway.",
|
||||
grp_habisiniseminar_btn_detail: "View Details",
|
||||
grp_habisiniseminar_faq_title: "Frequently Asked Questions — New Student Admission",
|
||||
grp_habisiniseminar_faq_sub: "Find answers to your questions",
|
||||
grp_habisiniseminar_faq_q1: "How can I check my selection results?",
|
||||
grp_habisiniseminar_faq_a1: "Selection results are announced online through the official portal according to the scheduled dates.",
|
||||
grp_habisiniseminar_faq_q2: "What happens if I miss the re-registration or payment deadline?",
|
||||
grp_habisiniseminar_faq_a2: "Failure to re-register or pay on time may result in your admission status being revoked or treated as a voluntary withdrawal.",
|
||||
grp_habisiniseminar_faq_q3: "What should I do after being declared accepted?",
|
||||
grp_habisiniseminar_faq_a3: "Accepted applicants must complete re-registration and fulfill all administrative requirements. Further information is available on the official Informatics UNTAN website and social media channels.",
|
||||
grp_habisiniseminar_faq_q4: "How many specializations does this study program offer?",
|
||||
grp_habisiniseminar_faq_a4: "This program offers four specializations: Artificial Intelligence (AI), Software Engineering, Networks & Security, and Information Systems.",
|
||||
grp_habisiniseminar_faq_q5: "Will students gain practical or project experience during their studies?",
|
||||
grp_habisiniseminar_faq_a5: "Yes. Students will take part in various practicum sessions, project assignments, and group work designed to build technical skills and real-world problem-solving abilities.",
|
||||
grp_habisiniseminar_faq_q6: "What is campus life like at Informatics UNTAN?",
|
||||
grp_habisiniseminar_faq_a6: "The campus environment supports both academic and non-academic activities, with numerous student organizations and technology communities. To learn more about campus life and student activities, please visit the related page <a href=\"https://informatika.untan.ac.id/content.html?type=people_stories\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.",
|
||||
grp_habisiniseminar_faq_q7: "Do Informatics UNTAN graduates have good career prospects?",
|
||||
grp_habisiniseminar_faq_a7: "Graduates have broad career opportunities across fields such as software development, data analytics, network security, and technology entrepreneurship.",
|
||||
grp_habisiniseminar_faq_q8: "Can Informatics UNTAN students participate in competitions?",
|
||||
grp_habisiniseminar_faq_a8: "Yes. Students are actively encouraged to participate in technology competitions at local, national, and international levels. Information on competitions and student achievements is available <a href=\"https://informatika.untan.ac.id/content.html?type=people_stories\" target=\"_blank\" rel=\"noopener noreferrer\">here</a>.",
|
||||
grp_habisiniseminar_month_jan: "January",
|
||||
grp_habisiniseminar_month_feb: "February",
|
||||
grp_habisiniseminar_month_mar: "March",
|
||||
grp_habisiniseminar_month_apr: "April",
|
||||
grp_habisiniseminar_month_mei: "May",
|
||||
grp_habisiniseminar_month_jun: "June",
|
||||
grp_habisiniseminar_month_jul: "July",
|
||||
grp_habisiniseminar_month_des: "December",
|
||||
grp_habisiniseminar_month_des_jan: "December – January",
|
||||
grp_habisiniseminar_month_jan_feb: "January – February",
|
||||
grp_habisiniseminar_month_jan_apr: "January – April",
|
||||
grp_habisiniseminar_month_feb_apr: "February – April",
|
||||
grp_habisiniseminar_month_feb_mar: "February – March",
|
||||
grp_habisiniseminar_month_mar_apr: "March – April",
|
||||
grp_habisiniseminar_month_mar_mei: "Mar – May",
|
||||
grp_habisiniseminar_month_apr_mei: "April – May",
|
||||
grp_habisiniseminar_month_mei_jun: "May – June",
|
||||
grp_habisiniseminar_month_jun_jul: "June – July",
|
||||
grp_m4n1fest_hero_label: "INFORMATICS STUDY PROGRAM · UNTAN PONTIANAK",
|
||||
grp_m4n1fest_hero_title_1: "Informatics",
|
||||
grp_m4n1fest_hero_title_2: "Alumni",
|
||||
grp_m4n1fest_hero_subtitle: "UNTAN Pontianak",
|
||||
grp_m4n1fest_hero_desc: "Informatics UNTAN graduates are now working across Indonesia and the world. Discover their footprints, find inspiration from their journeys, and be part of this network.",
|
||||
grp_m4n1fest_hero_btn_stats: "View Alumni Statistics",
|
||||
grp_m4n1fest_hero_btn_join: "Join Alumni Group",
|
||||
grp_m4n1fest_hero_stat_alumni: "TOTAL ALUMNI",
|
||||
grp_m4n1fest_hero_stat_alumni_desc: "data obtained from alumni recorded in tracer study",
|
||||
grp_m4n1fest_hero_stat_batch: "CLASSES",
|
||||
grp_m4n1fest_hero_stat_company: "COMPANIES",
|
||||
grp_m4n1fest_eyebrow_achievers: "High Achievers",
|
||||
grp_m4n1fest_title_achievers: "Informatics <em>Alumni</em>",
|
||||
grp_m4n1fest_sub_achievers: "They prove that Informatics UNTAN graduates are capable of competing and working at the highest level.",
|
||||
grp_m4n1fest_ach1_batch: "Class of 2005",
|
||||
grp_m4n1fest_ach1_pos: "Full-time Lecturer, Univ Muhammadiyah Pontianak & Researcher, Universidad de Granada",
|
||||
grp_m4n1fest_ach1_ach1: "M.Sc. Computer Engineering, Marmara University",
|
||||
grp_m4n1fest_ach1_ach2: "Ph.D. in Info & Comm Tech, Universidad de Granada",
|
||||
grp_m4n1fest_ach1_ach3: "Experienced in cross-country AI research",
|
||||
grp_m4n1fest_ach2_batch: "Informatics UNTAN",
|
||||
grp_m4n1fest_ach2_pos: "Software Developer, Traxpay GmbH, Germany",
|
||||
grp_m4n1fest_ach2_ach1: "M.Sc. Computer Science, Saarland University",
|
||||
grp_m4n1fest_ach2_ach2: "Working in the European FinTech industry",
|
||||
grp_m4n1fest_ach2_ach3: "Expert in digital payment systems & ERP integration",
|
||||
grp_m4n1fest_ach3_batch: "Class of 2009",
|
||||
grp_m4n1fest_ach3_pos: "Product Manager, CX-Oriented Tech, Ai Tech",
|
||||
grp_m4n1fest_ach3_ach1: "AI Practitioner focusing on Voice AI",
|
||||
grp_m4n1fest_ach3_ach2: "Designing technology products based on Customer Experience",
|
||||
grp_m4n1fest_ach3_ach3: "AI solutions innovator across various platforms",
|
||||
grp_m4n1fest_eyebrow_career: "Career Path",
|
||||
grp_m4n1fest_title_career: "Where Do Alumni <em>Work?</em>",
|
||||
grp_m4n1fest_sub_career: "Distribution of industries where alumni pursue their careers.",
|
||||
grp_m4n1fest_career_gov: "Government agencies",
|
||||
grp_m4n1fest_career_private: "Private companies",
|
||||
grp_m4n1fest_career_entrepreneur: "Entrepreneurs/own companies",
|
||||
grp_m4n1fest_career_soes: "State-Owned Enterprises (BUMN/BUMD)",
|
||||
grp_m4n1fest_career_ngo: "Non-profit organizations/NGOs",
|
||||
grp_m4n1fest_career_note: "* Data obtained from Untan Tracer Study. Last updated May 2026.",
|
||||
grp_m4n1fest_career_logo_title: "Companies Where Alumni Pursue Careers",
|
||||
grp_m4n1fest_logo_bca: "BCA",
|
||||
grp_m4n1fest_logo_bri: "BRI",
|
||||
grp_m4n1fest_logo_telkom: "Telkom Indonesia",
|
||||
grp_m4n1fest_logo_pln: "PLN",
|
||||
grp_m4n1fest_logo_indofood: "Indofood Fortuna",
|
||||
grp_m4n1fest_logo_astra: "Astra Daihatsu",
|
||||
grp_m4n1fest_logo_unilever: "Unilever",
|
||||
grp_m4n1fest_logo_grab: "Grab",
|
||||
grp_m4n1fest_logo_telkomsel: "Telkomsel",
|
||||
grp_m4n1fest_logo_garuda: "Garuda Indonesia",
|
||||
grp_m4n1fest_logo_bulog: "Perum BULOG",
|
||||
grp_m4n1fest_logo_others: "Others",
|
||||
grp_m4n1fest_eyebrow_skill: "Skill Distribution",
|
||||
grp_m4n1fest_title_skill: "Skills <em>Mastered by Alumni</em>",
|
||||
grp_m4n1fest_sub_skill: "Skill distribution based on alumni contribution form data — a clear picture of real competencies of Informatics UNTAN graduates.",
|
||||
grp_m4n1fest_skill_not_listed: "Not Listed Here Yet?",
|
||||
grp_m4n1fest_skill_not_listed_desc: "Help us complete the skill database of Informatics UNTAN alumni. Contribute your expertise data to map the true potential of graduates across various industrial sectors.",
|
||||
grp_m4n1fest_skill_btn_contrib: "Fill Out Contribution Form",
|
||||
grp_m4n1fest_eyebrow_stats: "Alumni Statistics",
|
||||
grp_m4n1fest_title_stats: "Number of Alumni <em>by Graduation Year</em>",
|
||||
grp_m4n1fest_sub_stats: "Data on graduates by semester period and graduation year.",
|
||||
grp_m4n1fest_table_head_period: "Period",
|
||||
grp_m4n1fest_table_head_amount: "Amount",
|
||||
grp_m4n1fest_table_source: "Source: BAK UNTAN",
|
||||
grp_m4n1fest_chart_title: "Graduation Chart",
|
||||
grp_m4n1fest_eyebrow_testi: "Alumni Testimonials",
|
||||
grp_m4n1fest_title_testi: "What They Say About <em>Informatics UNTAN</em>",
|
||||
grp_m4n1fest_testi1_text: "\"For prospective Informatics Untan students, my advice is to keep developing yourself and not be easily satisfied. College is the starting point to open up wider opportunities. Focus on your areas of interest, improve specific skills, expand your network, and master foreign languages as an added value. With commitment and strong will, opportunities for career or further study at the global level will be wide open.\"",
|
||||
grp_m4n1fest_testi1_role: "Product Manager, Ai Practitioner · Class of 2009",
|
||||
grp_m4n1fest_testi2_text: "\"The foundation you build at Informatics Untan is very valuable. The ability to think algorithmically and solve problems sharpened during college is a provision that will continue to be relevant wherever you pursue a career. Don't be afraid to dream big. If I — who started in Pontianak — could reach Frankfurt and contribute to the European FinTech industry, you can too. The important thing is to keep learning, dare to take opportunities, and never underestimate the quality of education you receive at Untan.\"",
|
||||
grp_m4n1fest_testi2_role: "Software Developer, Traxpay GmbH",
|
||||
grp_m4n1fest_testi3_text: "\"The foundation we obtain from the campus and Student Association is the best place to learn resilience. Make that experience a means to stay open to changes. If we are able to adapt well, our limits are no longer determined by geography, but how far we dare to step.\"",
|
||||
grp_m4n1fest_testi3_role: "Full-time Lecturer, UMP & Researcher, Universidad de Granada",
|
||||
grp_m4n1fest_eyebrow_events: "Annual Events",
|
||||
grp_m4n1fest_title_events: "Meet Us <em>Every Year</em>",
|
||||
grp_m4n1fest_sub_events: "HMIF Informatics UNTAN organizes two major annual events that always invite and gather alumni.",
|
||||
grp_m4n1fest_event1_title: "SKBI Ramadhan",
|
||||
grp_m4n1fest_event1_meta: "Informatics Family Gathering",
|
||||
grp_m4n1fest_event1_desc: "SKBI Ramadhan is a gathering event that brings together the entire big family of Informatics UNTAN — active students, lecturers, and alumni from various batches. This activity serves as a warm gathering moment in the month of Ramadhan, strengthening the bonds of alumni with the academic community through social activities, breaking fast together, and networking.",
|
||||
grp_m4n1fest_event1_note: "Full info on HMIF Instagram",
|
||||
grp_m4n1fest_event2_title: "INFORMERS",
|
||||
grp_m4n1fest_event2_meta: "Informatics Anniversary",
|
||||
grp_m4n1fest_event2_desc: "INFORMERS is the celebration of the Anniversary of the Informatics Study Program at UNTAN. This big event hosts various student-level academic and non-academic competition activities, IT innovation exhibitions, music entertainment, to a peak night that gathers all academics and alumni in the spirit of dedication and togetherness.",
|
||||
grp_m4n1fest_event2_note: "Monitor IG for schedule & registration",
|
||||
grp_m4n1fest_eyebrow_join: "Join IKA",
|
||||
grp_m4n1fest_title_join: "Join the <em>Alumni Group</em>",
|
||||
grp_m4n1fest_sub_join: "Register yourself to join the WhatsApp group of the Informatics UNTAN Alumni Association (IKA). Connect with hundreds of alumni and get job vacancy updates, activities, and collaboration opportunities.",
|
||||
grp_m4n1fest_step1_head: "Fill Out Registration Form",
|
||||
grp_m4n1fest_step1_desc: "Enter your name, student ID (NIM), phone number, email, work status, and 3 primary skills.",
|
||||
grp_m4n1fest_step2_head: "IKA Admin Verification",
|
||||
grp_m4n1fest_step2_desc: "IKA Admin will verify that you are an alumnus of Informatics UNTAN within 1–2 business days.",
|
||||
grp_m4n1fest_step3_head: "Enter IKA WhatsApp Group",
|
||||
grp_m4n1fest_step3_desc: "Once verified, you will be invited to the IKA WhatsApp group and instantly connect with hundreds of alumni!",
|
||||
grp_m4n1fest_wa_badge: "Informatics UNTAN IKA Group",
|
||||
grp_m4n1fest_wa_title: "Informatics UNTAN IKA",
|
||||
grp_m4n1fest_wa_sub: "500+ active members",
|
||||
grp_m4n1fest_form_title: "IKA Registration Form",
|
||||
grp_m4n1fest_form_sub: "Fill out the data below to join the alumni WhatsApp group.",
|
||||
grp_m4n1fest_form_nama: "Full Name *",
|
||||
grp_m4n1fest_form_nim: "Student ID (NIM)",
|
||||
grp_m4n1fest_form_angkatan: "Class of *",
|
||||
grp_m4n1fest_form_hp: "Phone / WhatsApp No. *",
|
||||
grp_m4n1fest_form_email: "Active Email *",
|
||||
grp_m4n1fest_form_status: "Current Status *",
|
||||
grp_m4n1fest_form_status_opt1: "— Select Status —",
|
||||
grp_m4n1fest_form_status_opt2: "Working",
|
||||
grp_m4n1fest_form_status_opt3: "Entrepreneur / Freelance",
|
||||
grp_m4n1fest_form_status_opt4: "Continuing Studies",
|
||||
grp_m4n1fest_form_status_opt5: "Looking for a Job",
|
||||
grp_m4n1fest_form_instansi: "Workplace / Institution <span class=\"text-xs text-slate-400 font-normal\">(optional)</span>",
|
||||
grp_m4n1fest_form_skill_title: "3 Primary Skills Mastered *",
|
||||
grp_m4n1fest_form_skill_sub: "Select 3 skills you are most proficient in.",
|
||||
grp_m4n1fest_form_skill_opt1: "— Select —",
|
||||
grp_m4n1fest_form_persetujuan: "Consent *",
|
||||
grp_m4n1fest_form_persetujuan_txt: "I agree that the data I entered is true and willing to be verified by the Informatics UNTAN IKA admin.",
|
||||
grp_m4n1fest_form_btn: "Register Now",
|
||||
grp_m4n1fest_form_msg: "Data saved instantly · Processing 1-2 business days",
|
||||
grp_m4n1fest_eyebrow_faq: "FAQ",
|
||||
grp_m4n1fest_title_faq: "Questions About <em>Alumni</em>",
|
||||
grp_m4n1fest_faq_q1: "How do I join the IKA alumni group?",
|
||||
grp_m4n1fest_faq_a1: "Fill out the registration form in the \"Join IKA\" section above with your full name, class year, WhatsApp number, and active email. Once verified by the admin within 1-2 business days, you will be invited to the Informatics UNTAN IKA WhatsApp group.",
|
||||
grp_m4n1fest_faq_q2: "How long is the IKA registration verification process?",
|
||||
grp_m4n1fest_faq_a2: "The verification process usually takes 1-2 business days. The IKA admin will verify that you are indeed an alumnus of Informatics UNTAN based on the name and class year filled out.",
|
||||
grp_m4n1fest_faq_q3: "What are the benefits of joining the IKA alumni group?",
|
||||
grp_m4n1fest_faq_a3: "In the IKA group, you can access job vacancy updates from fellow alumni, info on annual activities like SKBI Ramadhan and INFORMERS, project collaborations, sharing career experiences, and building professional connections with hundreds of alumni from various classes and industries.",
|
||||
grp_m4n1fest_faq_q4: "Are there job vacancy or internship updates in IKA?",
|
||||
grp_m4n1fest_faq_a4: "Yes! One of the main benefits of the IKA group is that alumni who are already working often share vacancy updates from their companies. Many IKA members get their first jobs or change careers through referrals from fellow alumni in this group.",
|
||||
grp_m4n1fest_faq_q5: "Is there an industry collaboration program from the Informatics Program?",
|
||||
grp_m4n1fest_faq_a5: "The Informatics UNTAN Study Program has a mandatory Internship (KP) program that connects students with the industry. Latest info on industry collaborations can be followed through Instagram @informatika.untan.",
|
||||
grp_m4n1fest_faq_q6: "How do I participate in SKBI Ramadhan or INFORMERS activities?",
|
||||
grp_m4n1fest_faq_a6: "Registration and event info for SKBI Ramadhan can be found on Instagram @hmif_ftuntan. For INFORMERS, monitor Instagram @informershmif. As an IKA group member, you will also receive direct notifications whenever there are activities involving alumni.",
|
||||
grp_m4n1fest_faq_q7: "Who can register for IKA?",
|
||||
grp_m4n1fest_faq_a7: "All alumni of the Informatics Study Program of Universitas Tanjungpura from all classes can register for IKA. There are no restrictions on class year, employment status, or domicile. As long as you are an Informatics UNTAN graduate, you are eligible to join!",
|
||||
grp_m4n1fest_eyebrow_contact: "Contact & Social Media",
|
||||
grp_m4n1fest_title_contact: "Find Us on <em>Instagram</em>",
|
||||
grp_m4n1fest_sub_contact: "Follow our official Instagram accounts for the latest information on alumni activities, job vacancy updates, and Informatics UNTAN Study Program updates.",
|
||||
grp_m4n1fest_ig_main_label: "Prodi Official Instagram",
|
||||
grp_m4n1fest_ig_main_desc: "Academic updates, activities, and alumni info",
|
||||
grp_m4n1fest_ig_hmif_desc: "HMIF & SKBI Ramadhan",
|
||||
grp_m4n1fest_ig_informers_desc: "INFORMERS",
|
||||
grp_m4n1fest_cta_box_title: "Ready to join?",
|
||||
grp_m4n1fest_cta_box_desc: "Scroll up and fill out the IKA registration form now. Free, fast, and instantly connect with hundreds of alumni!",
|
||||
grp_m4n1fest_cta_box_btn: "Register for IKA Now",
|
||||
grp_limaem_kegiatan_title: "Kegiatan Unggulan",
|
||||
grp_limaem_kegiatan_subtitle:
|
||||
"Kegiatan tahunan yang menjadi ikon Informatika UNTAN.",
|
||||
@@ -1233,8 +1544,8 @@ const translations = {
|
||||
grp_m4n1fest_hero_stat_alumni: "TOTAL ALUMNI",
|
||||
grp_m4n1fest_hero_stat_alumni_desc:
|
||||
"data diperoleh dari alumni terdata di tracer study",
|
||||
grp_m4n1fest_hero_stat_batch: "TOTAL ANGKATAN",
|
||||
grp_m4n1fest_hero_stat_company: "TOTAL PERUSAHAAN",
|
||||
grp_m4n1fest_hero_stat_batch: "ANGKATAN",
|
||||
grp_m4n1fest_hero_stat_company: "PERUSAHAAN",
|
||||
grp_m4n1fest_eyebrow_achievers: "High Achievers",
|
||||
grp_m4n1fest_title_achievers: "Alumni <em>Informatika</em>",
|
||||
grp_m4n1fest_sub_achievers:
|
||||
@@ -1286,7 +1597,7 @@ const translations = {
|
||||
grp_m4n1fest_skill_not_listed: "Belum Terdata di Sini?",
|
||||
grp_m4n1fest_skill_not_listed_desc:
|
||||
"Bantu kami melengkapi database skill alumni Informatika UNTAN. Kontribusikan data keahlian Anda untuk memetakan potensi nyata dari lulusan di berbagai sektor industri.",
|
||||
grp_m4n1fest_skill_btn_contrib: "Isi Form",
|
||||
grp_m4n1fest_skill_btn_contrib: "Isi Form Kontribusi",
|
||||
grp_m4n1fest_eyebrow_stats: "Statistik Alumni",
|
||||
grp_m4n1fest_title_stats:
|
||||
"Jumlah Alumni <em>berdasarkan Tahun Kelulusan</em>",
|
||||
@@ -1295,11 +1606,6 @@ const translations = {
|
||||
grp_m4n1fest_table_head_period: "Periode",
|
||||
grp_m4n1fest_table_head_amount: "Jumlah",
|
||||
grp_m4n1fest_table_source: "Sumber : BAK UNTAN",
|
||||
grp_m4n1fest_table_p1: "2024 Genap",
|
||||
grp_m4n1fest_table_p2: "2024 Ganjil",
|
||||
grp_m4n1fest_table_p3: "2023 Genap",
|
||||
grp_m4n1fest_table_p4: "2023 Ganjil",
|
||||
grp_m4n1fest_table_p5: "2022 Genap",
|
||||
grp_m4n1fest_chart_title: "Grafik Jumlah Lulusan",
|
||||
grp_m4n1fest_eyebrow_testi: "Testimoni Alumni",
|
||||
grp_m4n1fest_title_testi: "Kata Mereka tentang <em>Informatika UNTAN</em>",
|
||||
@@ -1313,7 +1619,7 @@ const translations = {
|
||||
grp_m4n1fest_testi3_text:
|
||||
'"Fondasi yang kita peroleh dari kampus dan Himpunan merupakan wadah terbaik untuk belajar ketangguhan. Jadikanlah pengalaman tersebut sebagai sarana untuk terus terbuka terhadap perubahan. Jika kita mampu beradaptasi dengan baik, batas kemampuan kita tidak lagi ditentukan oleh geografi, melainkan seberapa jauh kita berani melangkah."',
|
||||
grp_m4n1fest_testi3_role:
|
||||
"Dosen Tetap, UMP & Peneliti, Universidad de Granada · Angkatan 2005",
|
||||
"Dosen Tetap, UMP & Peneliti, Universidad de Granada",
|
||||
grp_m4n1fest_eyebrow_events: "Kegiatan Tahunan",
|
||||
grp_m4n1fest_title_events: "Temui Kami di <em>Setiap Tahun</em>",
|
||||
grp_m4n1fest_sub_events:
|
||||
@@ -1324,7 +1630,7 @@ const translations = {
|
||||
"SKBI Ramadhan adalah acara silaturahmi yang mempertemukan seluruh keluarga besar Informatika UNTAN — mahasiswa aktif, dosen, dan alumni dari berbagai angkatan. Kegiatan ini menjadi momen silaturahmi yang hangat di bulan Ramadhan, mempererat tali persaudaraan alumni dengan civitas akademika melalui kegiatan sosial, buka bersama, dan networking.",
|
||||
grp_m4n1fest_event1_note: "Info lengkap di Instagram HMIF",
|
||||
grp_m4n1fest_event2_title: "INFORMERS",
|
||||
grp_m4n1fest_event2_meta: "HUT Informatika",
|
||||
grp_m4n1fest_event2_meta: "Informatic Anniversary",
|
||||
grp_m4n1fest_event2_desc:
|
||||
"INFORMERS adalah perayaan Hari Ulang Tahun Program Studi Informatika UNTAN. Acara besar ini mewadahi berbagai kegiatan kompetisi akademik maupun non-akademik tingkat mahasiswa, pameran inovasi IT, hiburan musik, hingga malam puncak yang mengumpulkan seluruh civitas akademika dan alumni dalam semangat dedikasi dan kebersamaan.",
|
||||
grp_m4n1fest_event2_note: "Pantau IG untuk jadwal & cara daftar",
|
||||
@@ -1360,11 +1666,9 @@ const translations = {
|
||||
grp_m4n1fest_form_status_opt5: "Mencari Kerja",
|
||||
grp_m4n1fest_form_instansi:
|
||||
'Tempat Bekerja / Instansi <span class="text-xs text-slate-400 font-normal">(opsional)</span>',
|
||||
grp_m4n1fest_form_instansi_placeholder: "Contoh: PT. Telkom Indonesia, Google...",
|
||||
grp_m4n1fest_form_skill_title: "3 Skill Utama yang Dikuasai *",
|
||||
grp_m4n1fest_form_skill_sub: "Pilih 3 skill yang paling kamu kuasai.",
|
||||
grp_m4n1fest_form_skill_opt1: "— Pilih —",
|
||||
grp_m4n1fest_form_skill_others: "Lainnya",
|
||||
grp_m4n1fest_form_persetujuan: "Persetujuan *",
|
||||
grp_m4n1fest_form_persetujuan_txt:
|
||||
"Saya menyetujui bahwa data yang saya masukkan adalah benar and bersedia diverifikasi oleh admin IKA Informatika UNTAN.",
|
||||
@@ -2555,8 +2859,8 @@ const translations = {
|
||||
grp_m4n1fest_hero_stat_alumni: "TOTAL ALUMNI",
|
||||
grp_m4n1fest_hero_stat_alumni_desc:
|
||||
"data obtained from alumni recorded in tracer study",
|
||||
grp_m4n1fest_hero_stat_batch: "TOTAL BATCHES",
|
||||
grp_m4n1fest_hero_stat_company: "TOTAL COMPANIES",
|
||||
grp_m4n1fest_hero_stat_batch: "CLASSES",
|
||||
grp_m4n1fest_hero_stat_company: "COMPANIES",
|
||||
grp_m4n1fest_eyebrow_achievers: "High Achievers",
|
||||
grp_m4n1fest_title_achievers: "Informatics <em>Alumni</em>",
|
||||
grp_m4n1fest_sub_achievers:
|
||||
@@ -2610,7 +2914,7 @@ const translations = {
|
||||
grp_m4n1fest_skill_not_listed: "Not Listed Here Yet?",
|
||||
grp_m4n1fest_skill_not_listed_desc:
|
||||
"Help us complete the skill database of Informatics UNTAN alumni. Contribute your expertise data to map the true potential of graduates across various industrial sectors.",
|
||||
grp_m4n1fest_skill_btn_contrib: "Fill Form",
|
||||
grp_m4n1fest_skill_btn_contrib: "Fill Out Contribution Form",
|
||||
grp_m4n1fest_eyebrow_stats: "Alumni Statistics",
|
||||
grp_m4n1fest_title_stats: "Number of Alumni <em>by Graduation Year</em>",
|
||||
grp_m4n1fest_sub_stats:
|
||||
@@ -2618,11 +2922,6 @@ const translations = {
|
||||
grp_m4n1fest_table_head_period: "Period",
|
||||
grp_m4n1fest_table_head_amount: "Amount",
|
||||
grp_m4n1fest_table_source: "Source: BAK UNTAN",
|
||||
grp_m4n1fest_table_p1: "2024 Even",
|
||||
grp_m4n1fest_table_p2: "2024 Odd",
|
||||
grp_m4n1fest_table_p3: "2023 Even",
|
||||
grp_m4n1fest_table_p4: "2023 Odd",
|
||||
grp_m4n1fest_table_p5: "2022 Even",
|
||||
grp_m4n1fest_chart_title: "Graduation Chart",
|
||||
grp_m4n1fest_eyebrow_testi: "Alumni Testimonials",
|
||||
grp_m4n1fest_title_testi: "What They Say About <em>Informatics UNTAN</em>",
|
||||
@@ -2636,7 +2935,7 @@ const translations = {
|
||||
grp_m4n1fest_testi3_text:
|
||||
'"The foundation we obtain from the campus and Student Association is the best place to learn resilience. Make that experience a means to stay open to changes. If we are able to adapt well, our limits are no longer determined by geography, but how far we dare to step."',
|
||||
grp_m4n1fest_testi3_role:
|
||||
"Full-time Lecturer, UMP & Researcher, Universidad de Granada · Class of 2005",
|
||||
"Full-time Lecturer, UMP & Researcher, Universidad de Granada",
|
||||
grp_m4n1fest_eyebrow_events: "Annual Events",
|
||||
grp_m4n1fest_title_events: "Meet Us <em>Every Year</em>",
|
||||
grp_m4n1fest_sub_events:
|
||||
@@ -2683,11 +2982,9 @@ const translations = {
|
||||
grp_m4n1fest_form_status_opt5: "Looking for a Job",
|
||||
grp_m4n1fest_form_instansi:
|
||||
'Workplace / Institution <span class="text-xs text-slate-400 font-normal">(optional)</span>',
|
||||
grp_m4n1fest_form_instansi_placeholder: "Example: PT. Telkom Indonesia, Google...",
|
||||
grp_m4n1fest_form_skill_title: "3 Primary Skills Mastered *",
|
||||
grp_m4n1fest_form_skill_sub: "Select 3 skills you are most proficient in.",
|
||||
grp_m4n1fest_form_skill_opt1: "— Select —",
|
||||
grp_m4n1fest_form_skill_others: "Others",
|
||||
grp_m4n1fest_form_persetujuan: "Consent *",
|
||||
grp_m4n1fest_form_persetujuan_txt:
|
||||
"I agree that the data I entered is true and willing to be verified by the Informatics UNTAN IKA admin.",
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 5.4 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 263 KiB |
Binary file not shown.
|
After Width: | Height: | Size: 313 KiB |
+74
-296
@@ -17,56 +17,20 @@
|
||||
"en": "This SOP aims to explain the procedures for conducting lectures for students of the Informatics Study Program at Tanjungpura University."
|
||||
},
|
||||
"requirements": [
|
||||
{
|
||||
"id": "Mahasiswa telah melakukan pembayaran UKT",
|
||||
"en": "Student has completed UKT payment"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa telah mengisi KRS",
|
||||
"en": "Student has filled out the KRS"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa terdaftar di kelas Edlink",
|
||||
"en": "Student is registered in Edlink classes"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa wajib mengikuti perkuliahan dan menyelesaikan tugas tepat waktu",
|
||||
"en": "Students must attend lectures and complete assignments on time"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa wajib mengisi daftar hadir dan memberikan alasan resmi jika tidak hadir",
|
||||
"en": "Students must fill in the attendance list and provide an official reason if absent"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa memenuhi minimal 70% kehadiran untuk mengikuti UAS",
|
||||
"en": "Students must meet a minimum of 70% attendance to take the UAS"
|
||||
}
|
||||
{ "id": "Mahasiswa telah melakukan pembayaran UKT", "en": "Student has completed UKT payment" },
|
||||
{ "id": "Mahasiswa telah mengisi KRS", "en": "Student has filled out the KRS" },
|
||||
{ "id": "Mahasiswa terdaftar di kelas Edlink", "en": "Student is registered in Edlink classes" },
|
||||
{ "id": "Mahasiswa wajib mengikuti perkuliahan dan menyelesaikan tugas tepat waktu", "en": "Students must attend lectures and complete assignments on time" },
|
||||
{ "id": "Mahasiswa wajib mengisi daftar hadir dan memberikan alasan resmi jika tidak hadir", "en": "Students must fill in the attendance list and provide an official reason if absent" },
|
||||
{ "id": "Mahasiswa memenuhi minimal 70% kehadiran untuk mengikuti UAS", "en": "Students must meet a minimum of 70% attendance to take the UAS" }
|
||||
],
|
||||
"procedures": [
|
||||
{
|
||||
"id": "Dosen memasuki ruang perkuliahan sesuai jadwal yang telah ditetapkan",
|
||||
"en": "The lecturer enters the lecture room according to the set schedule"
|
||||
},
|
||||
{
|
||||
"id": "Dosen mengabsensi mahasiswa dengan mencantumkan keterangan hadir, izin, atau tidak hadir",
|
||||
"en": "The lecturer takes attendance, noting present, excused, or absent"
|
||||
},
|
||||
{
|
||||
"id": "Pada pertemuan pertama, dosen membuat kontrak perkuliahan secara tertulis bersama mahasiswa",
|
||||
"en": "At the first meeting, the lecturer creates a written lecture contract with students"
|
||||
},
|
||||
{
|
||||
"id": "Dosen menjelaskan materi perkuliahan sesuai RPS yang telah diserahkan ke program studi",
|
||||
"en": "The lecturer explains the course material according to the RPS submitted to the study program"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa mendiskusikan, mencatat, dan mengkritisi materi perkuliahan",
|
||||
"en": "Students discuss, take notes, and critically engage with the lecture material"
|
||||
},
|
||||
{
|
||||
"id": "Dosen menyimpulkan materi perkuliahan dan memberikan penugasan",
|
||||
"en": "The lecturer summarizes the lecture material and gives assignments"
|
||||
}
|
||||
{ "id": "Dosen memasuki ruang perkuliahan sesuai jadwal yang telah ditetapkan", "en": "The lecturer enters the lecture room according to the set schedule" },
|
||||
{ "id": "Dosen mengabsensi mahasiswa dengan mencantumkan keterangan hadir, izin, atau tidak hadir", "en": "The lecturer takes attendance, noting present, excused, or absent" },
|
||||
{ "id": "Pada pertemuan pertama, dosen membuat kontrak perkuliahan secara tertulis bersama mahasiswa", "en": "At the first meeting, the lecturer creates a written lecture contract with students" },
|
||||
{ "id": "Dosen menjelaskan materi perkuliahan sesuai RPS yang telah diserahkan ke program studi", "en": "The lecturer explains the course material according to the RPS submitted to the study program" },
|
||||
{ "id": "Mahasiswa mendiskusikan, mencatat, dan mengkritisi materi perkuliahan", "en": "Students discuss, take notes, and critically engage with the lecture material" },
|
||||
{ "id": "Dosen menyimpulkan materi perkuliahan dan memberikan penugasan", "en": "The lecturer summarizes the lecture material and gives assignments" }
|
||||
],
|
||||
"additional_info": {
|
||||
"id": "Mahasiswa yang tidak memenuhi persyaratan kehadiran minimal tidak diperkenankan mengikuti Ujian Akhir Semester (UAS) sesuai ketentuan akademik yang berlaku.",
|
||||
@@ -91,32 +55,14 @@
|
||||
"en": "This SOP aims to ensure the smooth process of student learning evaluation through UTS and UAS so that it runs orderly, measurably, and in accordance with the course lecturer's instructions."
|
||||
},
|
||||
"requirements": [
|
||||
{
|
||||
"id": "Mahasiswa terdaftar aktif pada mata kuliah yang sedang berjalan pada semester tersebut",
|
||||
"en": "Students are actively registered in the courses running in that semester"
|
||||
},
|
||||
{
|
||||
"id": "Persentase kehadiran perkuliahan mahasiswa tidak kurang dari 75%",
|
||||
"en": "Student lecture attendance percentage is not less than 75%"
|
||||
}
|
||||
{ "id": "Mahasiswa terdaftar aktif pada mata kuliah yang sedang berjalan pada semester tersebut", "en": "Students are actively registered in the courses running in that semester" },
|
||||
{ "id": "Persentase kehadiran perkuliahan mahasiswa tidak kurang dari 75%", "en": "Student lecture attendance percentage is not less than 75%" }
|
||||
],
|
||||
"procedures": [
|
||||
{
|
||||
"id": "Dosen pengampu menentukan kriteria UTS dan UAS",
|
||||
"en": "The course lecturer determines the UTS and UAS criteria"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa mengikuti UTS atau UAS sesuai instruksi dosen pengampu, dan wajib melakukan presensi",
|
||||
"en": "Students take UTS or UAS according to the lecturer's instructions and must complete attendance"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa mengumpulkan hasil UTS atau UAS sesuai rentang waktu yang diberikan",
|
||||
"en": "Students submit UTS or UAS results within the given timeframe"
|
||||
},
|
||||
{
|
||||
"id": "Dosen menilai dan merekap pengerjaan UTS atau UAS mahasiswa",
|
||||
"en": "The lecturer grades and records the students' UTS or UAS work"
|
||||
}
|
||||
{ "id": "Dosen pengampu menentukan kriteria UTS dan UAS", "en": "The course lecturer determines the UTS and UAS criteria" },
|
||||
{ "id": "Mahasiswa mengikuti UTS atau UAS sesuai instruksi dosen pengampu, dan wajib melakukan presensi", "en": "Students take UTS or UAS according to the lecturer's instructions and must complete attendance" },
|
||||
{ "id": "Mahasiswa mengumpulkan hasil UTS atau UAS sesuai rentang waktu yang diberikan", "en": "Students submit UTS or UAS results within the given timeframe" },
|
||||
{ "id": "Dosen menilai dan merekap pengerjaan UTS atau UAS mahasiswa", "en": "The lecturer grades and records the students' UTS or UAS work" }
|
||||
],
|
||||
"additional_info": {
|
||||
"id": "Segala bentuk kecurangan saat ujian, maupun tindakan plagiarisme dalam pengerjaan UTS/UAS, dapat mengakibatkan pembatalan nilai atau pemberian sanksi.",
|
||||
@@ -141,36 +87,15 @@
|
||||
"en": "This SOP aims to provide guidelines for conducting lecture evaluations to support the improvement of learning quality in the Informatics Study Program at Tanjungpura University."
|
||||
},
|
||||
"requirements": [
|
||||
{
|
||||
"id": "Mahasiswa terdaftar aktif pada semester berjalan",
|
||||
"en": "Students are actively registered for the current semester"
|
||||
},
|
||||
{
|
||||
"id": "Telah mengikuti kegiatan perkuliahan pada mata kuliah yang dievaluasi",
|
||||
"en": "Has attended lecture activities for the course being evaluated"
|
||||
},
|
||||
{
|
||||
"id": "Tersedia akses ke sistem evaluasi perkuliahan",
|
||||
"en": "Access to the lecture evaluation system is available"
|
||||
}
|
||||
{ "id": "Mahasiswa terdaftar aktif pada semester berjalan", "en": "Students are actively registered for the current semester" },
|
||||
{ "id": "Telah mengikuti kegiatan perkuliahan pada mata kuliah yang dievaluasi", "en": "Has attended lecture activities for the course being evaluated" },
|
||||
{ "id": "Tersedia akses ke sistem evaluasi perkuliahan", "en": "Access to the lecture evaluation system is available" }
|
||||
],
|
||||
"procedures": [
|
||||
{
|
||||
"id": "Program Studi membuka periode evaluasi perkuliahan",
|
||||
"en": "The Study Program opens the lecture evaluation period"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa mengakses satu untan dan mengisi kuesioner evaluasi perkuliahan",
|
||||
"en": "Students access the Satu Untan portal and fill out the lecture evaluation questionnaire"
|
||||
},
|
||||
{
|
||||
"id": "Sistem merekap hasil evaluasi yang telah diisi mahasiswa",
|
||||
"en": "The system records the evaluation results filled in by students"
|
||||
},
|
||||
{
|
||||
"id": "Program Studi meninjau hasil evaluasi sebagai bahan pengembangan perkuliahan",
|
||||
"en": "The Study Program reviews the evaluation results as material for lecture development"
|
||||
}
|
||||
{ "id": "Program Studi membuka periode evaluasi perkuliahan", "en": "The Study Program opens the lecture evaluation period" },
|
||||
{ "id": "Mahasiswa mengakses satu untan dan mengisi kuesioner evaluasi perkuliahan", "en": "Students access the Satu Untan portal and fill out the lecture evaluation questionnaire" },
|
||||
{ "id": "Sistem merekap hasil evaluasi yang telah diisi mahasiswa", "en": "The system records the evaluation results filled in by students" },
|
||||
{ "id": "Program Studi meninjau hasil evaluasi sebagai bahan pengembangan perkuliahan", "en": "The Study Program reviews the evaluation results as material for lecture development" }
|
||||
],
|
||||
"additional_info": {
|
||||
"id": "Hasil evaluasi digunakan sebagai dasar perbaikan dan pengembangan kualitas pembelajaran pada semester berikutnya. Pengisian evaluasi perkuliahan dapat menjadi salah satu syarat untuk mengakses hasil studi sesuai kebijakan yang berlaku.",
|
||||
@@ -195,60 +120,21 @@
|
||||
"en": "This SOP aims to provide guidelines to all relevant parties in the implementation of the Internship and to improve the efficiency and effectiveness of its execution in the Informatics Study Program, Faculty of Engineering, Tanjungpura University."
|
||||
},
|
||||
"requirements": [
|
||||
{
|
||||
"id": "Telah lulus minimal 100 SKS",
|
||||
"en": "Has passed a minimum of 100 credits (SKS)"
|
||||
},
|
||||
{
|
||||
"id": "Memiliki IPK minimal 2,00",
|
||||
"en": "Has a minimum GPA of 2.00"
|
||||
},
|
||||
{
|
||||
"id": "Telah lulus mata kuliah Penulisan Proposal Tugas Akhir dengan nilai minimal C",
|
||||
"en": "Has passed the Final Project Proposal Writing course with a minimum grade of C"
|
||||
},
|
||||
{
|
||||
"id": "Menyerahkan berkas pendukung pengajuan KP (KTM, riwayat studi, transkrip, dan surat permohonan)",
|
||||
"en": "Submits supporting documents for the KP application (student ID, academic record, transcript, and application letter)"
|
||||
},
|
||||
{
|
||||
"id": "Pembimbing Lapangan dari tempat KP memiliki kualifikasi pendidikan minimal S1/D4",
|
||||
"en": "The Field Supervisor at the KP institution holds a minimum educational qualification of Bachelor's (S1) or Applied Bachelor's (D4)"
|
||||
}
|
||||
{ "id": "Telah lulus minimal 100 SKS", "en": "Has passed a minimum of 100 credits (SKS)" },
|
||||
{ "id": "Memiliki IPK minimal 2,00", "en": "Has a minimum GPA of 2.00" },
|
||||
{ "id": "Telah lulus mata kuliah Penulisan Proposal Tugas Akhir dengan nilai minimal C", "en": "Has passed the Final Project Proposal Writing course with a minimum grade of C" },
|
||||
{ "id": "Menyerahkan berkas pendukung pengajuan KP (KTM, riwayat studi, transkrip, dan surat permohonan)", "en": "Submits supporting documents for the KP application (student ID, academic record, transcript, and application letter)" },
|
||||
{ "id": "Pembimbing Lapangan dari tempat KP memiliki kualifikasi pendidikan minimal S1/D4", "en": "The Field Supervisor at the KP institution holds a minimum educational qualification of Bachelor's (S1) or Applied Bachelor's (D4)" }
|
||||
],
|
||||
"procedures": [
|
||||
{
|
||||
"id": "Mahasiswa mengusulkan topik, draf proposal, dan menyerahkan berkas KP",
|
||||
"en": "Students propose a topic, submit a draft proposal, and submit KP documents"
|
||||
},
|
||||
{
|
||||
"id": "Staf Administrasi memverifikasi kelengkapan berkas",
|
||||
"en": "Administrative Staff verifies the completeness of documents"
|
||||
},
|
||||
{
|
||||
"id": "Ketua Prodi menerbitkan surat pengantar KP",
|
||||
"en": "The Head of the Study Program issues the KP introductory letter"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa melaksanakan KP dan mengikuti bimbingan",
|
||||
"en": "Students carry out the KP and attend supervision sessions"
|
||||
},
|
||||
{
|
||||
"id": "Pembimbing Lapangan memberikan penilaian KP",
|
||||
"en": "The Field Supervisor provides a KP assessment"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa mengajukan seminar dan Prodi menerbitkan undangan",
|
||||
"en": "Students apply for the seminar and the Study Program issues an invitation"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa melaksanakan seminar KP",
|
||||
"en": "Students conduct the KP seminar"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa melakukan revisi laporan akhir KP",
|
||||
"en": "Students revise the final KP report"
|
||||
}
|
||||
{ "id": "Mahasiswa mengusulkan topik, draf proposal, dan menyerahkan berkas KP", "en": "Students propose a topic, submit a draft proposal, and submit KP documents" },
|
||||
{ "id": "Staf Administrasi memverifikasi kelengkapan berkas", "en": "Administrative Staff verifies the completeness of documents" },
|
||||
{ "id": "Ketua Prodi menerbitkan surat pengantar KP", "en": "The Head of the Study Program issues the KP introductory letter" },
|
||||
{ "id": "Mahasiswa melaksanakan KP dan mengikuti bimbingan", "en": "Students carry out the KP and attend supervision sessions" },
|
||||
{ "id": "Pembimbing Lapangan memberikan penilaian KP", "en": "The Field Supervisor provides a KP assessment" },
|
||||
{ "id": "Mahasiswa mengajukan seminar dan Prodi menerbitkan undangan", "en": "Students apply for the seminar and the Study Program issues an invitation" },
|
||||
{ "id": "Mahasiswa melaksanakan seminar KP", "en": "Students conduct the KP seminar" },
|
||||
{ "id": "Mahasiswa melakukan revisi laporan akhir KP", "en": "Students revise the final KP report" }
|
||||
],
|
||||
"staff_responsible": [
|
||||
"👤 Staf Administrasi Informatika / Informatics Administrative Staff"
|
||||
@@ -276,64 +162,22 @@
|
||||
"en": "This SOP aims to provide guidance to students and lecturers in the implementation of the thesis so that the thesis writing process runs in an orderly, directed, and academically compliant manner."
|
||||
},
|
||||
"requirements": [
|
||||
{
|
||||
"id": "Telah lulus minimal 120 SKS",
|
||||
"en": "Has passed a minimum of 120 credits (SKS)"
|
||||
},
|
||||
{
|
||||
"id": "Memiliki IPK minimal 2,00",
|
||||
"en": "Has a minimum GPA of 2.00"
|
||||
},
|
||||
{
|
||||
"id": "Telah lulus mata kuliah Penulisan Proposal Tugas Akhir dengan nilai minimal C",
|
||||
"en": "Has passed the Final Project Proposal Writing course with a minimum grade of C"
|
||||
},
|
||||
{
|
||||
"id": "Telah mendaftarkan mata kuliah skripsi pada KRS",
|
||||
"en": "Has registered the thesis course in the KRS"
|
||||
},
|
||||
{
|
||||
"id": "Telah menyiapkan judul dan proposal skripsi",
|
||||
"en": "Has prepared a thesis title and proposal"
|
||||
},
|
||||
{
|
||||
"id": "Memiliki dosen pembimbing skripsi",
|
||||
"en": "Has a thesis supervisor"
|
||||
},
|
||||
{
|
||||
"id": "Melengkapi berkas persyaratan",
|
||||
"en": "Completes the required documents"
|
||||
}
|
||||
{ "id": "Telah lulus minimal 120 SKS", "en": "Has passed a minimum of 120 credits (SKS)" },
|
||||
{ "id": "Memiliki IPK minimal 2,00", "en": "Has a minimum GPA of 2.00" },
|
||||
{ "id": "Telah lulus mata kuliah Penulisan Proposal Tugas Akhir dengan nilai minimal C", "en": "Has passed the Final Project Proposal Writing course with a minimum grade of C" },
|
||||
{ "id": "Telah mendaftarkan mata kuliah skripsi pada KRS", "en": "Has registered the thesis course in the KRS" },
|
||||
{ "id": "Telah menyiapkan judul dan proposal skripsi", "en": "Has prepared a thesis title and proposal" },
|
||||
{ "id": "Memiliki dosen pembimbing skripsi", "en": "Has a thesis supervisor" },
|
||||
{ "id": "Melengkapi berkas persyaratan", "en": "Completes the required documents" }
|
||||
],
|
||||
"procedures": [
|
||||
{
|
||||
"id": "Mahasiswa mengajukan judul dan proposal skripsi",
|
||||
"en": "Students submit the thesis title and proposal"
|
||||
},
|
||||
{
|
||||
"id": "Program studi menetapkan dosen pembimbing skripsi",
|
||||
"en": "The study program assigns a thesis supervisor"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa melakukan bimbingan dan penyusunan skripsi",
|
||||
"en": "Students conduct supervision sessions and write the thesis"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa mengajukan seminar atau sidang skripsi",
|
||||
"en": "Students apply for the thesis seminar or defense"
|
||||
},
|
||||
{
|
||||
"id": "Tim penguji dan pembimbing melaksanakan seminar skripsi",
|
||||
"en": "The examination committee and supervisor conduct the thesis seminar"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa melakukan revisi skripsi",
|
||||
"en": "Students revise the thesis"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa menyerahkan skripsi final",
|
||||
"en": "Students submit the final thesis"
|
||||
}
|
||||
{ "id": "Mahasiswa mengajukan judul dan proposal skripsi", "en": "Students submit the thesis title and proposal" },
|
||||
{ "id": "Program studi menetapkan dosen pembimbing skripsi", "en": "The study program assigns a thesis supervisor" },
|
||||
{ "id": "Mahasiswa melakukan bimbingan dan penyusunan skripsi", "en": "Students conduct supervision sessions and write the thesis" },
|
||||
{ "id": "Mahasiswa mengajukan seminar atau sidang skripsi", "en": "Students apply for the thesis seminar or defense" },
|
||||
{ "id": "Tim penguji dan pembimbing melaksanakan seminar skripsi", "en": "The examination committee and supervisor conduct the thesis seminar" },
|
||||
{ "id": "Mahasiswa melakukan revisi skripsi", "en": "Students revise the thesis" },
|
||||
{ "id": "Mahasiswa menyerahkan skripsi final", "en": "Students submit the final thesis" }
|
||||
],
|
||||
"staff_responsible": [
|
||||
"👤 Staf Administrasi Informatika / Informatics Administrative Staff"
|
||||
@@ -361,36 +205,15 @@
|
||||
"en": "This SOP aims to explain the procedures for conducting courses that have a practicum component in the current semester."
|
||||
},
|
||||
"requirements": [
|
||||
{
|
||||
"id": "Terdaftar sebagai peserta mata kuliah yang memiliki komponen praktikum pada semester berjalan",
|
||||
"en": "Registered as a participant in courses with a practicum component in the current semester"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa membawa perlengkapan praktikum yang diperlukan",
|
||||
"en": "Students bring the required practicum equipment"
|
||||
}
|
||||
{ "id": "Terdaftar sebagai peserta mata kuliah yang memiliki komponen praktikum pada semester berjalan", "en": "Registered as a participant in courses with a practicum component in the current semester" },
|
||||
{ "id": "Mahasiswa membawa perlengkapan praktikum yang diperlukan", "en": "Students bring the required practicum equipment" }
|
||||
],
|
||||
"procedures": [
|
||||
{
|
||||
"id": "Dosen mata kuliah menuntaskan pembahasan materi yang menjadi dasar praktikum",
|
||||
"en": "The course lecturer completes the discussion of material that forms the basis of the practicum"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa mengisi daftar hadir dan menerima penjelasan prosedur praktikum",
|
||||
"en": "Students fill in the attendance list and receive an explanation of the practicum procedures"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa melaksanakan praktikum sesuai modul di bawah pengawasan dosen atau asisten praktikum",
|
||||
"en": "Students carry out the practicum according to the module under the supervision of the lecturer or practicum assistant"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa menyusun dan mengumpulkan laporan praktikum sesuai tenggat waktu",
|
||||
"en": "Students compile and submit the practicum report by the deadline"
|
||||
},
|
||||
{
|
||||
"id": "Dosen atau asisten melakukan penilaian laporan dan hasil praktikum sebagai komponen nilai akhir",
|
||||
"en": "The lecturer or assistant grades the practicum report and results as a component of the final grade"
|
||||
}
|
||||
{ "id": "Dosen mata kuliah menuntaskan pembahasan materi yang menjadi dasar praktikum", "en": "The course lecturer completes the discussion of material that forms the basis of the practicum" },
|
||||
{ "id": "Mahasiswa mengisi daftar hadir dan menerima penjelasan prosedur praktikum", "en": "Students fill in the attendance list and receive an explanation of the practicum procedures" },
|
||||
{ "id": "Mahasiswa melaksanakan praktikum sesuai modul di bawah pengawasan dosen atau asisten praktikum", "en": "Students carry out the practicum according to the module under the supervision of the lecturer or practicum assistant" },
|
||||
{ "id": "Mahasiswa menyusun dan mengumpulkan laporan praktikum sesuai tenggat waktu", "en": "Students compile and submit the practicum report by the deadline" },
|
||||
{ "id": "Dosen atau asisten melakukan penilaian laporan dan hasil praktikum sebagai komponen nilai akhir", "en": "The lecturer or assistant grades the practicum report and results as a component of the final grade" }
|
||||
],
|
||||
"additional_info": {
|
||||
"id": "Mahasiswa wajib mengikuti seluruh ketentuan praktikum dan menjaga ketertiban serta keamanan selama kegiatan praktikum berlangsung.",
|
||||
@@ -415,40 +238,16 @@
|
||||
"en": "This SOP aims to serve as a standard guide for conducting transparent Practicum Assistant recruitment, in order to select competent and committed Informatics UNTAN students according to course qualifications."
|
||||
},
|
||||
"requirements": [
|
||||
{
|
||||
"id": "Mahasiswa aktif Program Studi Informatika UNTAN",
|
||||
"en": "Active student of the Informatics Study Program at UNTAN"
|
||||
},
|
||||
{
|
||||
"id": "Lulus mata kuliah terkait dengan nilai minimal ketentuan Dosen Pengampu",
|
||||
"en": "Passed the relevant course with a minimum grade as per the Lecturer's requirements"
|
||||
},
|
||||
{
|
||||
"id": "Berkomitmen mengikuti seluruh jadwal dan kontrak praktikum selama semester berjalan",
|
||||
"en": "Committed to following all practicum schedules and contracts throughout the current semester"
|
||||
}
|
||||
{ "id": "Mahasiswa aktif Program Studi Informatika UNTAN", "en": "Active student of the Informatics Study Program at UNTAN" },
|
||||
{ "id": "Lulus mata kuliah terkait dengan nilai minimal ketentuan Dosen Pengampu", "en": "Passed the relevant course with a minimum grade as per the Lecturer's requirements" },
|
||||
{ "id": "Berkomitmen mengikuti seluruh jadwal dan kontrak praktikum selama semester berjalan", "en": "Committed to following all practicum schedules and contracts throughout the current semester" }
|
||||
],
|
||||
"procedures": [
|
||||
{
|
||||
"id": "Dosen mendata kebutuhan kuota dan kualifikasi Asisten Praktikum",
|
||||
"en": "The lecturer records the quota needs and qualifications for Practicum Assistants"
|
||||
},
|
||||
{
|
||||
"id": "Dosen mengumumkan pembukaan rekrutmen asisten praktikum",
|
||||
"en": "The lecturer announces the opening of Practicum Assistant recruitment"
|
||||
},
|
||||
{
|
||||
"id": "Mahasiswa mendaftarkan diri sesuai persyaratan yang diberikan",
|
||||
"en": "Students register according to the given requirements"
|
||||
},
|
||||
{
|
||||
"id": "Dosen melakukan seleksi wawancara kepada calon asisten praktikum",
|
||||
"en": "The lecturer conducts interview selection for practicum assistant candidates"
|
||||
},
|
||||
{
|
||||
"id": "Dosen mengumumkan calon yang diterima berdasarkan hasil seleksi",
|
||||
"en": "The lecturer announces the accepted candidates based on the selection results"
|
||||
}
|
||||
{ "id": "Dosen mendata kebutuhan kuota dan kualifikasi Asisten Praktikum", "en": "The lecturer records the quota needs and qualifications for Practicum Assistants" },
|
||||
{ "id": "Dosen mengumumkan pembukaan rekrutmen asisten praktikum", "en": "The lecturer announces the opening of Practicum Assistant recruitment" },
|
||||
{ "id": "Mahasiswa mendaftarkan diri sesuai persyaratan yang diberikan", "en": "Students register according to the given requirements" },
|
||||
{ "id": "Dosen melakukan seleksi wawancara kepada calon asisten praktikum", "en": "The lecturer conducts interview selection for practicum assistant candidates" },
|
||||
{ "id": "Dosen mengumumkan calon yang diterima berdasarkan hasil seleksi", "en": "The lecturer announces the accepted candidates based on the selection results" }
|
||||
],
|
||||
"additional_info": {
|
||||
"id": "Keputusan hasil seleksi bersifat final dan ditetapkan oleh dosen pengampu mata kuliah. Asisten Praktikum yang terpilih wajib mematuhi seluruh ketentuan yang berlaku selama menjalankan tugas sebagai Asisten Praktikum.",
|
||||
@@ -473,36 +272,15 @@
|
||||
"en": "This SOP aims to explain the procedures for borrowing the computer lab and to ensure that borrowing supports the smooth teaching and learning process in the Informatics Study Program at Tanjungpura University."
|
||||
},
|
||||
"requirements": [
|
||||
{
|
||||
"id": "Melampirkan surat permohonan peminjaman laboratorium",
|
||||
"en": "Attach a laboratory borrowing request letter"
|
||||
},
|
||||
{
|
||||
"id": "Terdapat dosen atau asisten praktikum yang bertanggung jawab",
|
||||
"en": "A responsible lecturer or practicum assistant is present"
|
||||
},
|
||||
{
|
||||
"id": "Pengguna menaati tata tertib dan ketentuan penggunaan perangkat laboratorium",
|
||||
"en": "Users comply with the rules and regulations for using laboratory equipment"
|
||||
}
|
||||
{ "id": "Melampirkan surat permohonan peminjaman laboratorium", "en": "Attach a laboratory borrowing request letter" },
|
||||
{ "id": "Terdapat dosen atau asisten praktikum yang bertanggung jawab", "en": "A responsible lecturer or practicum assistant is present" },
|
||||
{ "id": "Pengguna menaati tata tertib dan ketentuan penggunaan perangkat laboratorium", "en": "Users comply with the rules and regulations for using laboratory equipment" }
|
||||
],
|
||||
"procedures": [
|
||||
{
|
||||
"id": "Dosen atau mahasiswa mengajukan surat permohonan peminjaman laboratorium kepada pengelola",
|
||||
"en": "The lecturer or student submits a laboratory borrowing request letter to the management"
|
||||
},
|
||||
{
|
||||
"id": "Pengguna menyampaikan jadwal penggunaan laboratorium",
|
||||
"en": "The user submits the laboratory usage schedule"
|
||||
},
|
||||
{
|
||||
"id": "Pengelola menyusun jadwal penggunaan laboratorium",
|
||||
"en": "The management arranges the laboratory usage schedule"
|
||||
},
|
||||
{
|
||||
"id": "Laboratorium digunakan sesuai jadwal dan ketentuan yang berlaku",
|
||||
"en": "The laboratory is used according to the schedule and applicable regulations"
|
||||
}
|
||||
{ "id": "Dosen atau mahasiswa mengajukan surat permohonan peminjaman laboratorium kepada pengelola", "en": "The lecturer or student submits a laboratory borrowing request letter to the management" },
|
||||
{ "id": "Pengguna menyampaikan jadwal penggunaan laboratorium", "en": "The user submits the laboratory usage schedule" },
|
||||
{ "id": "Pengelola menyusun jadwal penggunaan laboratorium", "en": "The management arranges the laboratory usage schedule" },
|
||||
{ "id": "Laboratorium digunakan sesuai jadwal dan ketentuan yang berlaku", "en": "The laboratory is used according to the schedule and applicable regulations" }
|
||||
],
|
||||
"staff_responsible": [
|
||||
"👤 Staf Laboratorium Informatika / Informatics Laboratory Staff"
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"id": "Staf Administrasi Informatika",
|
||||
"en": "Informatics Administrative Staff"
|
||||
},
|
||||
"image": "assets/images/foto-profile.jpeg",
|
||||
"image": "assets/images/staff-female.png",
|
||||
"location": {
|
||||
"id": "Ruang Administrasi Prodi Informatika",
|
||||
"en": "Informatics Study Program Administration Room"
|
||||
@@ -44,7 +44,7 @@
|
||||
"id": "Staf Laboratorium Informatika",
|
||||
"en": "Informatics Laboratory Staff"
|
||||
},
|
||||
"image": "assets/images/foto-profile.jpeg",
|
||||
"image": "assets/images/staff-male.png",
|
||||
"location": {
|
||||
"id": "Laboratorium Informatika",
|
||||
"en": "Informatics Laboratory"
|
||||
|
||||
Binary file not shown.
|
Before Width: | Height: | Size: 644 KiB |
@@ -2709,10 +2709,10 @@
|
||||
href: "https://maps.app.goo.gl/386expVMhHgMAmXA9",
|
||||
},
|
||||
{
|
||||
image: "images/hutan-sylva.png",
|
||||
image: "images/hutan-mangrove.jpg",
|
||||
nameKey: "skp_dest_mangrove_name",
|
||||
descKey: "skp_dest_mangrove_desc",
|
||||
href: "https://maps.app.goo.gl/ktWUMbxwHbWUfb4L8",
|
||||
href: "#",
|
||||
},
|
||||
{
|
||||
image: "images/mujahidin.webp",
|
||||
|
||||
@@ -2,119 +2,87 @@
|
||||
const dict = {
|
||||
id: {
|
||||
// --- Hero Section ---
|
||||
skp_hero_desc:
|
||||
"Kuliah di kampus unggulan Kalimantan Barat dengan fasilitas lengkap, lingkungan nyaman dan kehidupan mahasiswa yang terjangkau",
|
||||
skp_hero_desc: "Kuliah di kampus unggulan Kalimantan Barat dengan fasilitas lengkap, lingkungan nyaman dan kehidupan mahasiswa yang terjangkau",
|
||||
|
||||
// --- About Section ---
|
||||
skp_about_eyebrow: "Tentang Untan",
|
||||
skp_about_title: "Kampus Unggul di Kalimantan Barat",
|
||||
skp_about_desc_1:
|
||||
"Universitas Tanjungpura merupakan perguruan tinggi negeri terkemuka di Kalimantan Barat yang berkomitmen menghadirkan pendidikan berkualitas.",
|
||||
skp_about_desc_2:
|
||||
"UNTAN terus mendorong pengembangan riset, inovasi, dan kolaborasi di berbagai bidang.",
|
||||
skp_about_desc_3:
|
||||
"Didukung lingkungan belajar yang nyaman, mahasiswa memiliki ruang untuk berkembang secara akademik maupun nonakademik.",
|
||||
skp_about_desc_1: "Universitas Tanjungpura merupakan perguruan tinggi negeri terkemuka di Kalimantan Barat yang berkomitmen menghadirkan pendidikan berkualitas.",
|
||||
skp_about_desc_2: "UNTAN terus mendorong pengembangan riset, inovasi, dan kolaborasi di berbagai bidang.",
|
||||
skp_about_desc_3: "Didukung lingkungan belajar yang nyaman, mahasiswa memiliki ruang untuk berkembang secara akademik maupun nonakademik.",
|
||||
skp_about_link_text: "Kunjungi Website Resmi",
|
||||
|
||||
// --- Facilities Section ---
|
||||
skp_fac_eyebrow: "Fasilitas Kampus",
|
||||
skp_fac_main_title:
|
||||
"Fasilitas Kampus untuk Pengalaman Belajar yang Nyaman",
|
||||
skp_fac_main_title: "Fasilitas Kampus untuk Pengalaman Belajar yang Nyaman",
|
||||
skp_fac_title_perpus: "Perpustakaan UNTAN",
|
||||
skp_fac_desc_perpus:
|
||||
"Koleksi literatur digital dan fisik terlengkap dengan ruang baca yang tenang dan modern.",
|
||||
skp_fac_desc_perpus: "Koleksi literatur digital dan fisik terlengkap dengan ruang baca yang tenang dan modern.",
|
||||
skp_fac_title_rusunawa: "Rusunawa",
|
||||
skp_fac_desc_rusunawa:
|
||||
"Hunian mahasiswa yang aman, terjangkau, dan berlokasi strategis di dalam lingkungan kampus.",
|
||||
skp_fac_desc_rusunawa: "Hunian mahasiswa yang aman, terjangkau, dan berlokasi strategis di dalam lingkungan kampus.",
|
||||
skp_fac_title_rs: "Rumah Sakit Untan & Klinik Pratama",
|
||||
skp_fac_desc_rs:
|
||||
"Layanan kesehatan prima bagi seluruh sivitas akademika dengan tenaga medis profesional.",
|
||||
skp_fac_desc_rs: "Layanan kesehatan prima bagi seluruh sivitas akademika dengan tenaga medis profesional.",
|
||||
skp_fac_title_gkb: "Gedung Kuliah Bersama",
|
||||
skp_fac_desc_gkb:
|
||||
"Ruang kelas interaktif dengan dukungan teknologi multimedia terkini untuk proses belajar mengajar.",
|
||||
skp_fac_desc_gkb: "Ruang kelas interaktif dengan dukungan teknologi multimedia terkini untuk proses belajar mengajar.",
|
||||
skp_fac_title_bahasa: "UPT Bahasa",
|
||||
skp_fac_desc_bahasa:
|
||||
"Pusat pelatihan bahasa asing dan sertifikasi internasional untuk menunjang karir global.",
|
||||
skp_fac_desc_bahasa: "Pusat pelatihan bahasa asing dan sertifikasi internasional untuk menunjang karir global.",
|
||||
skp_fac_title_olahraga: "Area Olahraga",
|
||||
skp_fac_desc_olahraga:
|
||||
"Fasilitas olahraga outdoor dan indoor lengkap untuk menjaga kebugaran dan menyalurkan bakat.",
|
||||
skp_fac_desc_olahraga: "Fasilitas olahraga outdoor dan indoor lengkap untuk menjaga kebugaran dan menyalurkan bakat.",
|
||||
skp_fac_title_masjid: "Masjid Muhtadin UNTAN",
|
||||
skp_fac_desc_masjid:
|
||||
"Pusat ibadah yang nyaman dan inklusif bagi sivitas akademika UNTAN dengan suasana religius yang menenangkan.",
|
||||
skp_fac_desc_masjid: "Pusat ibadah yang nyaman dan inklusif bagi sivitas akademika UNTAN dengan suasana religius yang menenangkan.",
|
||||
skp_fac_title_lab: "Laboraturium Kampus UNTAN",
|
||||
skp_fac_desc_lab:
|
||||
"Fasilitas laboratorium modern UNTAN yang mendukung riset, praktikum, dan inovasi mahasiswa.",
|
||||
skp_fac_desc_lab: "Fasilitas laboratorium modern UNTAN yang mendukung riset, praktikum, dan inovasi mahasiswa.",
|
||||
skp_fac_title_audit: "Auditorium UNTAN",
|
||||
skp_fac_desc_audit:
|
||||
"Ruang serbaguna representatif UNTAN untuk seminar, acara akademik, dan kegiatan besar kampus.",
|
||||
skp_fac_desc_audit: "Ruang serbaguna representatif UNTAN untuk seminar, acara akademik, dan kegiatan besar kampus.",
|
||||
|
||||
// --- Campus Section ---
|
||||
skp_campus_eyebrow: "Kehidupan Kampus",
|
||||
skp_campus_title: "Aktivitas Mahasiswa & Organisasi Kampus",
|
||||
skp_campus_subtitle:
|
||||
"Mahasiswa UNTAN memiliki berbagai kesempatan untuk berkembang melalui organisasi, UKM, komunitas, dan kegiatan ekstrakurikuler.",
|
||||
skp_campus_subtitle: "Mahasiswa UNTAN memiliki berbagai kesempatan untuk berkembang melalui organisasi, UKM, komunitas, dan kegiatan ekstrakurikuler.",
|
||||
skp_campus_cat_org: "Organisasi",
|
||||
skp_campus_cat_ukm: "UKM",
|
||||
skp_campus_cat_com: "Komunitas",
|
||||
skp_campus_dir_bem_title: "BEM UNTAN",
|
||||
skp_campus_dir_bem_desc:
|
||||
"Badan Eksekutif Mahasiswa tingkat universitas yang menjadi wadah aspirasi dan pergerakan mahasiswa untuk perubahan positif di kampus.",
|
||||
skp_campus_dir_bem_desc: "Badan Eksekutif Mahasiswa tingkat universitas yang menjadi wadah aspirasi dan pergerakan mahasiswa untuk perubahan positif di kampus.",
|
||||
skp_campus_dir_dpm_title: "DPM UNTAN",
|
||||
skp_campus_dir_dpm_desc:
|
||||
"Dewan Perwakilan Mahasiswa yang menjalankan fungsi legislasi dan pengawasan terhadap kebijakan-kebijakan organisasi mahasiswa di universitas.",
|
||||
skp_campus_dir_dpm_desc: "Dewan Perwakilan Mahasiswa yang menjalankan fungsi legislasi dan pengawasan terhadap kebijakan-kebijakan organisasi mahasiswa di universitas.",
|
||||
skp_campus_dir_hmif_title: "HMIF UNTAN",
|
||||
skp_campus_dir_hmif_desc:
|
||||
"Organisasi mahasiswa di bawah Program Studi Informatika yang menjadi wadah pengembangan akademik, kepemimpinan, dan jejaring bagi anggotanya.",
|
||||
skp_campus_dir_hmif_desc: "Organisasi mahasiswa di bawah Program Studi Informatika yang menjadi wadah pengembangan akademik, kepemimpinan, dan jejaring bagi anggotanya.",
|
||||
skp_campus_dir_cafa_title: "CAFATIFA",
|
||||
skp_campus_dir_cafa_desc:
|
||||
"Organisasi ini menjadi wadah pelayanan, pembinaan iman, dan pengembangan karakter bagi mahasiswa Katolik di fakultas tersebut.",
|
||||
skp_campus_dir_cafa_desc: "Organisasi ini menjadi wadah pelayanan, pembinaan iman, dan pengembangan karakter bagi mahasiswa Katolik di fakultas tersebut.",
|
||||
skp_campus_dir_mapala_title: "MAPALA UNTAN",
|
||||
skp_campus_dir_mapala_desc:
|
||||
"Wadah pecinta alam mahasiswa UNTAN yang membentuk karakter tangguh, peduli lingkungan, dan berjiwa petualang.",
|
||||
skp_campus_dir_mapala_desc: "Wadah pecinta alam mahasiswa UNTAN yang membentuk karakter tangguh, peduli lingkungan, dan berjiwa petualang.",
|
||||
skp_campus_dir_lisma_title: "LISMA UNTAN",
|
||||
skp_campus_dir_lisma_desc:
|
||||
"Wadah mahasiswa yang mengembangkan minat literasi, diskusi, dan pemikiran kritis secara kolaboratif.",
|
||||
skp_campus_dir_lisma_desc: "Wadah mahasiswa yang mengembangkan minat literasi, diskusi, dan pemikiran kritis secara kolaboratif.",
|
||||
skp_campus_dir_lsmi_title: "LSMI UNTAN",
|
||||
skp_campus_dir_lsmi_desc:
|
||||
"Unit kegiatan mahasiswa yang mewadahi pembinaan keagamaan, dakwah, dan pengembangan spiritual mahasiswa.",
|
||||
skp_campus_dir_lsmi_desc: "Unit kegiatan mahasiswa yang mewadahi pembinaan keagamaan, dakwah, dan pengembangan spiritual mahasiswa.",
|
||||
skp_campus_dir_semut_title: "SARANG SEMUT",
|
||||
skp_campus_dir_semut_desc:
|
||||
"Komunitas mahasiswa yang menumbuhkan budaya literasi, diskusi kritis, dan pemikiran intelektual di lingkungan kampus.",
|
||||
skp_campus_dir_semut_desc: "Komunitas mahasiswa yang menumbuhkan budaya literasi, diskusi kritis, dan pemikiran intelektual di lingkungan kampus.",
|
||||
skp_campus_dir_aiesec_title: "AIESEC",
|
||||
skp_campus_dir_aiesec_desc:
|
||||
"Organisasi kepemudaan internasional di UNTAN yang mengembangkan kepemimpinan, pengalaman global, dan kolaborasi lintas budaya mahasiswa.",
|
||||
skp_campus_dir_aiesec_desc: "Organisasi kepemudaan internasional di UNTAN yang mengembangkan kepemimpinan, pengalaman global, dan kolaborasi lintas budaya mahasiswa.",
|
||||
|
||||
// --- Pontianak City Section ---
|
||||
skp_pontianak_eyebrow: "Kota Pontianak",
|
||||
skp_pontianak_title: "Live In Pontianak",
|
||||
skp_pontianak_desc:
|
||||
"Pontianak bukan sekadar ibu kota Kalimantan Barat, tetapi tempat yang nyaman untuk tinggal, ramah bagi mahasiswa, dan bersahabat di kantong. Kota ini menawarkan akses fasilitas umum yang lengkap, ragam kuliner yang menggoda, serta suasana belajar yang aktif dan penuh semangat.",
|
||||
skp_pontianak_desc: "Pontianak bukan sekadar ibu kota Kalimantan Barat, tetapi tempat yang nyaman untuk tinggal, ramah bagi mahasiswa, dan bersahabat di kantong. Kota ini menawarkan akses fasilitas umum yang lengkap, ragam kuliner yang menggoda, serta suasana belajar yang aktif dan penuh semangat.",
|
||||
|
||||
// --- Destination Section ---
|
||||
skp_dest_eyebrow: "Wisata & Destinasi",
|
||||
skp_dest_title: "Tempat Menarik di Pontianak",
|
||||
skp_dest_open_maps: "Buka Peta",
|
||||
skp_dest_khatulistiwa_name: "Tugu Khatulistiwa",
|
||||
skp_dest_khatulistiwa_desc:
|
||||
"Ikon kota yang menandakan posisi garis lintang nol derajat di bumi.",
|
||||
skp_dest_khatulistiwa_desc: "Ikon kota yang menandakan posisi garis lintang nol derajat di bumi.",
|
||||
skp_dest_waterfront_name: "Waterfront",
|
||||
skp_dest_waterfront_desc:
|
||||
"Area pedestrian tepi sungai Kapuas yang populer untuk menikmati senja.",
|
||||
skp_dest_waterfront_desc: "Area pedestrian tepi sungai Kapuas yang populer untuk menikmati senja.",
|
||||
skp_dest_qubu_name: "Qubu Resort",
|
||||
skp_dest_qubu_desc:
|
||||
"Kawasan taman wisata terpadu dan resort bintang 4 di Kubu Raya.",
|
||||
skp_dest_qubu_desc: "Kawasan taman wisata terpadu dan resort bintang 4 di Kubu Raya.",
|
||||
skp_dest_radank_name: "Rumah Radakng",
|
||||
skp_dest_radank_desc:
|
||||
"Rumah adat suku Dayak dan merupakan simbol harmoni budaya.",
|
||||
skp_dest_radank_desc: "Rumah adat suku Dayak dan merupakan simbol harmoni budaya.",
|
||||
skp_dest_museum_name: "Museum",
|
||||
skp_dest_museum_desc:
|
||||
"Koleksi Geografika/Geologika berupa peta dan jenis batu-batuan.",
|
||||
skp_dest_museum_desc: "Koleksi Geografika/Geologika berupa peta dan jenis batu-batuan.",
|
||||
skp_dest_amalzone_name: "Amalzone",
|
||||
skp_dest_amalzone_desc:
|
||||
"Destinasi wisata alam dan rekreasi keluarga yang populer.",
|
||||
skp_dest_mangrove_name: "Hutan Sylva",
|
||||
skp_dest_mangrove_desc:
|
||||
"Pemandangan alami yang menakjubkan jalur trekking kayu.",
|
||||
skp_dest_amalzone_desc: "Destinasi wisata alam dan rekreasi keluarga yang populer.",
|
||||
skp_dest_mangrove_name: "Hutan Mangrove",
|
||||
skp_dest_mangrove_desc: "Pemandangan alami yang menakjubkan jalur trekking kayu.",
|
||||
skp_dest_mujahidin_name: "Masjid Mujahidin",
|
||||
skp_dest_mujahidin_desc: "Masjid terbesar di Provinsi Kalimantan Barat.",
|
||||
|
||||
@@ -123,35 +91,23 @@
|
||||
skp_cul_title: "Kuliner dan Coffee Shop Favorit Mahasiswa",
|
||||
skp_cul_cat_rm: "Rumah Makan",
|
||||
skp_cul_cat_cs: "Coffee Shop",
|
||||
skp_cul_gebuk_desc:
|
||||
"Ayam gepuk pedas gurih meresap, bikin nambah nasi terus.",
|
||||
skp_cul_sari_desc:
|
||||
"Masakan hangat rumahan menggoda, sekali coba langsung jatuh cinta.",
|
||||
skp_cul_gebuk_desc: "Ayam gepuk pedas gurih meresap, bikin nambah nasi terus.",
|
||||
skp_cul_sari_desc: "Masakan hangat rumahan menggoda, sekali coba langsung jatuh cinta.",
|
||||
skp_cul_mom_desc: "Menu rumahan enak dengan porsi besar.",
|
||||
skp_cul_shine_desc:
|
||||
"Nasi topping kekinian dengan tampilan menarik dan topping yang melimpah.",
|
||||
skp_cul_melepar_desc:
|
||||
"Ayam crispy gurih pedas favorit mahasiswa dengan ayam renyah pedas menggigit.",
|
||||
skp_cul_umi_desc:
|
||||
"Ayam geprek pedas murah dan mengenyangkan dengan pedasnya nampol mantap.",
|
||||
skp_cul_cw_desc:
|
||||
"CW Coffee awalnya berdiri pada tahun 2015 dengan nama Cyber World iCafe, sebuah kafe internet (warnet) berkecepatan tinggi yang buka 24 jam.",
|
||||
skp_cul_nordu_desc:
|
||||
"NORDU Coffee & Eatery (populer dikenal sebagai Kopi Nomor Dua) menawarkan tempat yang nyaman untuk bekerja (Work From Home) dengan menu kopi dan hidangan yang ramah di kantong.",
|
||||
skp_cul_kami_desc:
|
||||
"Toko Kami didirikan pada November 2021 oleh seorang pemuda kreatif bernama Yudistira Nusantara. Nama 'Toko Kami' merupakan sebuah akronim dari Toko Kudapan dan Aneka Minuman Indonesia.",
|
||||
skp_cul_lokale_desc:
|
||||
"Lokale didirikan oleh Asmako pada tahun 2017. Berawal dari kecintaan pemiliknya terhadap racikan kopi, Lokale hadir untuk menciptakan cita rasa kopi modern yang pas dengan lidah masyarakat.",
|
||||
skp_cul_weng_desc:
|
||||
"Weng Coffee adalah salah satu legenda hidup warung kopi di Kota Khatulistiwa yang sudah berdiri sejak tahun 1970.",
|
||||
skp_cul_tropic_desc:
|
||||
"Tropic Cafe Pontianak merupakan salah satu pelopor coffee shop modern berskala besar di Pontianak yang mengusung konsep 24 jam nonstop dengan harga super ramah kantong.",
|
||||
skp_cul_shine_desc: "Nasi topping kekinian dengan tampilan menarik dan topping yang melimpah.",
|
||||
skp_cul_melepar_desc: "Ayam crispy gurih pedas favorit mahasiswa dengan ayam renyah pedas menggigit.",
|
||||
skp_cul_umi_desc: "Ayam geprek pedas murah dan mengenyangkan dengan pedasnya nampol mantap.",
|
||||
skp_cul_cw_desc: "CW Coffee awalnya berdiri pada tahun 2015 dengan nama Cyber World iCafe, sebuah kafe internet (warnet) berkecepatan tinggi yang buka 24 jam.",
|
||||
skp_cul_nordu_desc: "NORDU Coffee & Eatery (populer dikenal sebagai Kopi Nomor Dua) menawarkan tempat yang nyaman untuk bekerja (Work From Home) dengan menu kopi dan hidangan yang ramah di kantong.",
|
||||
skp_cul_kami_desc: "Toko Kami didirikan pada November 2021 oleh seorang pemuda kreatif bernama Yudistira Nusantara. Nama 'Toko Kami' merupakan sebuah akronim dari Toko Kudapan dan Aneka Minuman Indonesia.",
|
||||
skp_cul_lokale_desc: "Lokale didirikan oleh Asmako pada tahun 2017. Berawal dari kecintaan pemiliknya terhadap racikan kopi, Lokale hadir untuk menciptakan cita rasa kopi modern yang pas dengan lidah masyarakat.",
|
||||
skp_cul_weng_desc: "Weng Coffee adalah salah satu legenda hidup warung kopi di Kota Khatulistiwa yang sudah berdiri sejak tahun 1970.",
|
||||
skp_cul_tropic_desc: "Tropic Cafe Pontianak merupakan salah satu pelopor coffee shop modern berskala besar di Pontianak yang mengusung konsep 24 jam nonstop dengan harga super ramah kantong.",
|
||||
|
||||
// --- Living Cost Section ---
|
||||
skp_cost_eyebrow: "Biaya Hidup Mahasiswa",
|
||||
skp_cost_title: "Perkiraan Biaya Hidup Mahasiswa di Pontianak",
|
||||
skp_cost_desc:
|
||||
"Perencanaan keuangan yang baik membantu mahasiswa menjalani masa studi dengan lebih nyaman di Pontianak.",
|
||||
skp_cost_desc: "Perencanaan keuangan yang baik membantu mahasiswa menjalani masa studi dengan lebih nyaman di Pontianak.",
|
||||
skp_cost_note: "*Data yang didapat bersumber dari survey internal",
|
||||
skp_cost_period: "per bulan",
|
||||
skp_cost_type_home: "Hunian",
|
||||
@@ -160,157 +116,112 @@
|
||||
},
|
||||
en: {
|
||||
// --- Hero Section ---
|
||||
skp_hero_desc:
|
||||
"Study at the leading campus in West Kalimantan with complete facilities, comfortable environment, and affordable student life",
|
||||
skp_hero_desc: "Study at the leading campus in West Kalimantan with complete facilities, comfortable environment, and affordable student life",
|
||||
|
||||
// --- About Section ---
|
||||
skp_about_eyebrow: "About Untan",
|
||||
skp_about_title: "A Leading Campus in West Kalimantan",
|
||||
skp_about_desc_1:
|
||||
"Universitas Tanjungpura is a leading public university in West Kalimantan committed to delivering quality education.",
|
||||
skp_about_desc_2:
|
||||
"UNTAN continues to drive research development, innovation, and collaboration across various fields.",
|
||||
skp_about_desc_3:
|
||||
"Supported by a comfortable learning environment, students have the opportunity to grow both academically and non-academically.",
|
||||
skp_about_desc_1: "Universitas Tanjungpura is a leading public university in West Kalimantan committed to delivering quality education.",
|
||||
skp_about_desc_2: "UNTAN continues to drive research development, innovation, and collaboration across various fields.",
|
||||
skp_about_desc_3: "Supported by a comfortable learning environment, students have the opportunity to grow both academically and non-academically.",
|
||||
skp_about_link_text: "Visit Official Website",
|
||||
|
||||
// --- Facilities Section ---
|
||||
skp_fac_eyebrow: "Campus Facilities",
|
||||
skp_fac_main_title:
|
||||
"Campus Facilities for a Comfortable Learning Experience",
|
||||
skp_fac_main_title: "Campus Facilities for a Comfortable Learning Experience",
|
||||
skp_fac_title_perpus: "UNTAN Library",
|
||||
skp_fac_desc_perpus:
|
||||
"The most complete collection of digital and physical literature with a quiet and modern reading room.",
|
||||
skp_fac_desc_perpus: "The most complete collection of digital and physical literature with a quiet and modern reading room.",
|
||||
skp_fac_title_rusunawa: "Student Dormitory (Rusunawa)",
|
||||
skp_fac_desc_rusunawa:
|
||||
"Safe, affordable, and strategically located student housing within the campus environment.",
|
||||
skp_fac_desc_rusunawa: "Safe, affordable, and strategically located student housing within the campus environment.",
|
||||
skp_fac_title_rs: "Untan Hospital & Pratama Clinic",
|
||||
skp_fac_desc_rs:
|
||||
"Excellent health services for the entire academic community with professional medical staff.",
|
||||
skp_fac_desc_rs: "Excellent health services for the entire academic community with professional medical staff.",
|
||||
skp_fac_title_gkb: "Shared Lecture Building (GKB)",
|
||||
skp_fac_desc_gkb:
|
||||
"Interactive classrooms with the latest multimedia technology support for the teaching and learning process.",
|
||||
skp_fac_desc_gkb: "Interactive classrooms with the latest multimedia technology support for the teaching and learning process.",
|
||||
skp_fac_title_bahasa: "Language Center (UPT Bahasa)",
|
||||
skp_fac_desc_bahasa:
|
||||
"Foreign language training and international certification center to support global careers.",
|
||||
skp_fac_desc_bahasa: "Foreign language training and international certification center to support global careers.",
|
||||
skp_fac_title_olahraga: "Sports Area",
|
||||
skp_fac_desc_olahraga:
|
||||
"Complete outdoor and indoor sports facilities to maintain fitness and channel talents.",
|
||||
skp_fac_desc_olahraga: "Complete outdoor and indoor sports facilities to maintain fitness and channel talents.",
|
||||
skp_fac_title_masjid: "Muhtadin Mosque UNTAN",
|
||||
skp_fac_desc_masjid:
|
||||
"A comfortable and inclusive place of worship for the UNTAN academic community with a soothing religious atmosphere.",
|
||||
skp_fac_desc_masjid: "A comfortable and inclusive place of worship for the UNTAN academic community with a soothing religious atmosphere.",
|
||||
skp_fac_title_lab: "UNTAN Campus Laboratory",
|
||||
skp_fac_desc_lab:
|
||||
"Modern UNTAN laboratory facilities that support student research, practicums, and innovation.",
|
||||
skp_fac_desc_lab: "Modern UNTAN laboratory facilities that support student research, practicums, and innovation.",
|
||||
skp_fac_title_audit: "UNTAN Auditorium",
|
||||
skp_fac_desc_audit:
|
||||
"A representative multi-purpose hall for seminars, academic events, and major campus activities.",
|
||||
skp_fac_desc_audit: "A representative multi-purpose hall for seminars, academic events, and major campus activities.",
|
||||
|
||||
// --- Campus Section ---
|
||||
skp_campus_eyebrow: "Campus Life",
|
||||
skp_campus_title: "Student Activities & Campus Organizations",
|
||||
skp_campus_subtitle:
|
||||
"UNTAN students have various opportunities to grow through organizations, Student Activity Units (UKM), communities, and extracurricular activities.",
|
||||
skp_campus_subtitle: "UNTAN students have various opportunities to grow through organizations, Student Activity Units (UKM), communities, and extracurricular activities.",
|
||||
skp_campus_cat_org: "Organizations",
|
||||
skp_campus_cat_ukm: "Student Units",
|
||||
skp_campus_cat_com: "Communities",
|
||||
skp_campus_dir_bem_title: "BEM UNTAN",
|
||||
skp_campus_dir_bem_desc:
|
||||
"The university-level Student Executive Board that acts as a forum for student aspirations and movements for positive campus change.",
|
||||
skp_campus_dir_bem_desc: "The university-level Student Executive Board that acts as a forum for student aspirations and movements for positive campus change.",
|
||||
skp_campus_dir_dpm_title: "DPM UNTAN",
|
||||
skp_campus_dir_dpm_desc:
|
||||
"The Student Representative Council that performs legislative and supervisory functions over student organization policies at the university.",
|
||||
skp_campus_dir_dpm_desc: "The Student Representative Council that performs legislative and supervisory functions over student organization policies at the university.",
|
||||
skp_campus_dir_hmif_title: "HMIF UNTAN",
|
||||
skp_campus_dir_hmif_desc:
|
||||
"A student organization under the Informatics Study Program that serves as a hub for academic development, leadership, and networking for its members.",
|
||||
skp_campus_dir_hmif_desc: "A student organization under the Informatics Study Program that serves as a hub for academic development, leadership, and networking for its members.",
|
||||
skp_campus_dir_cafa_title: "CAFATIFA",
|
||||
skp_campus_dir_cafa_desc:
|
||||
"This organization provides a forum for service, faith formation, and character building for Catholic students in the faculty.",
|
||||
skp_campus_dir_cafa_desc: "This organization provides a forum for service, faith formation, and character building for Catholic students in the faculty.",
|
||||
skp_campus_dir_mapala_title: "MAPALA UNTAN",
|
||||
skp_campus_dir_mapala_desc:
|
||||
"A community for UNTAN student nature lovers that shapes a resilient character, environmental awareness, and an adventurous spirit.",
|
||||
skp_campus_dir_mapala_desc: "A community for UNTAN student nature lovers that shapes a resilient character, environmental awareness, and an adventurous spirit.",
|
||||
skp_campus_dir_lisma_title: "LISMA UNTAN",
|
||||
skp_campus_dir_lisma_desc:
|
||||
"A student forum that develops interest in literacy, discussion, and critical thinking collaboratively.",
|
||||
skp_campus_dir_lisma_desc: "A student forum that develops interest in literacy, discussion, and critical thinking collaboratively.",
|
||||
skp_campus_dir_lsmi_title: "LSMI UNTAN",
|
||||
skp_campus_dir_lsmi_desc:
|
||||
"A student activity unit that handles religious guidance, Islamic outreach (da'wah), and spiritual development for students.",
|
||||
skp_campus_dir_lsmi_desc: "A student activity unit that handles religious guidance, Islamic outreach (da'wah), and spiritual development for students.",
|
||||
skp_campus_dir_semut_title: "SARANG SEMUT",
|
||||
skp_campus_dir_semut_desc:
|
||||
"A student community that fosters a culture of literacy, critical discussion, and intellectual thought within the campus environment.",
|
||||
skp_campus_dir_semut_desc: "A student community that fosters a culture of literacy, critical discussion, and intellectual thought within the campus environment.",
|
||||
skp_campus_dir_aiesec_title: "AIESEC",
|
||||
skp_campus_dir_aiesec_desc:
|
||||
"An international youth organization at UNTAN that develops leadership, global experience, and cross-cultural collaboration among students.",
|
||||
skp_campus_dir_aiesec_desc: "An international youth organization at UNTAN that develops leadership, global experience, and cross-cultural collaboration among students.",
|
||||
|
||||
// --- Pontianak City Section ---
|
||||
skp_pontianak_eyebrow: "Pontianak City",
|
||||
skp_pontianak_title: "Live In Pontianak",
|
||||
skp_pontianak_desc:
|
||||
"Pontianak is not just the capital of West Kalimantan, but a comfortable place to live, student-friendly, and very affordable. The city offers complete access to public facilities, a tempting variety of culinary options, and an active, vibrant learning environment.",
|
||||
skp_pontianak_desc: "Pontianak is not just the capital of West Kalimantan, but a comfortable place to live, student-friendly, and very affordable. The city offers complete access to public facilities, a tempting variety of culinary options, and an active, vibrant learning environment.",
|
||||
|
||||
// --- Destination Section ---
|
||||
skp_dest_eyebrow: "Tourism & Destinations",
|
||||
skp_dest_title: "Interesting Places in Pontianak",
|
||||
skp_dest_open_maps: "Open Maps",
|
||||
skp_dest_khatulistiwa_name: "Equator Monument",
|
||||
skp_dest_khatulistiwa_desc:
|
||||
"The city icon marking the zero-degree latitude position on earth.",
|
||||
skp_dest_khatulistiwa_desc: "The city icon marking the zero-degree latitude position on earth.",
|
||||
skp_dest_waterfront_name: "Waterfront",
|
||||
skp_dest_waterfront_desc:
|
||||
"A popular pedestrian area by the Kapuas River to enjoy the sunset.",
|
||||
skp_dest_waterfront_desc: "A popular pedestrian area by the Kapuas River to enjoy the sunset.",
|
||||
skp_dest_qubu_name: "Qubu Resort",
|
||||
skp_dest_qubu_desc:
|
||||
"An integrated tourism park area and a 4-star resort in Kubu Raya.",
|
||||
skp_dest_qubu_desc: "An integrated tourism park area and a 4-star resort in Kubu Raya.",
|
||||
skp_dest_radank_name: "Radakng House",
|
||||
skp_dest_radank_desc:
|
||||
"The traditional longhouse of the Dayak tribe, a symbol of cultural harmony.",
|
||||
skp_dest_radank_desc: "The traditional longhouse of the Dayak tribe, a symbol of cultural harmony.",
|
||||
skp_dest_museum_name: "Museum",
|
||||
skp_dest_museum_desc:
|
||||
"Geographical and geological collections featuring maps and various types of rocks.",
|
||||
skp_dest_museum_desc: "Geographical and geological collections featuring maps and various types of rocks.",
|
||||
skp_dest_amalzone_name: "Amalzone",
|
||||
skp_dest_amalzone_desc:
|
||||
"A popular nature tourism and family recreation destination.",
|
||||
skp_dest_amalzone_desc: "A popular nature tourism and family recreation destination.",
|
||||
skp_dest_mangrove_name: "Mangrove Forest",
|
||||
skp_dest_mangrove_desc:
|
||||
"Stunning natural scenery along a wooden trekking pathway.",
|
||||
skp_dest_mangrove_desc: "Stunning natural scenery along a wooden trekking pathway.",
|
||||
skp_dest_mujahidin_name: "Mujahidin Mosque",
|
||||
skp_dest_mujahidin_desc:
|
||||
"The largest mosque in the West Kalimantan Province.",
|
||||
skp_dest_mujahidin_desc: "The largest mosque in the West Kalimantan Province.",
|
||||
|
||||
// --- Culinary Section ---
|
||||
skp_cul_eyebrow: "Cafe & Culinary",
|
||||
skp_cul_title: "Students' Favorite Culinary and Coffee Shops",
|
||||
skp_cul_cat_rm: "Eateries",
|
||||
skp_cul_cat_cs: "Coffee Shops",
|
||||
skp_cul_gebuk_desc:
|
||||
"Spicy and savory pounded chicken that makes you want to keep adding rice.",
|
||||
skp_cul_sari_desc:
|
||||
"Tempting home-cooked warmth, fall in love at first bite.",
|
||||
skp_cul_gebuk_desc: "Spicy and savory pounded chicken that makes you want to keep adding rice.",
|
||||
skp_cul_sari_desc: "Tempting home-cooked warmth, fall in love at first bite.",
|
||||
skp_cul_mom_desc: "Delicious home-style meals with generous portions.",
|
||||
skp_cul_shine_desc:
|
||||
"Trendy rice bowls with attractive presentation and abundant toppings.",
|
||||
skp_cul_melepar_desc:
|
||||
"Crispy, savory, and spicy chicken, a student favorite with a crunchy, fiery bite.",
|
||||
skp_cul_umi_desc:
|
||||
"Cheap, filling, and spicy smashed chicken with an intensely satisfying kick.",
|
||||
skp_cul_cw_desc:
|
||||
"CW Coffee originally started in 2015 as Cyber World iCafe, a high-speed 24-hour internet cafe.",
|
||||
skp_cul_nordu_desc:
|
||||
"NORDU Coffee & Eatery (popularly known as Kopi Nomor Dua) offers a comfortable place to work (WFH) with student-friendly coffee and meals.",
|
||||
skp_cul_kami_desc:
|
||||
"Toko Kami was founded in November 2021 by a creative youth named Yudistira Nusantara. The name is an acronym for Indonesian Snack and Beverage Shop.",
|
||||
skp_cul_lokale_desc:
|
||||
"Lokale was founded by Asmako in 2017. Rooted in the owner's passion for coffee brewing, Lokale brings modern coffee flavors tailored to the local palate.",
|
||||
skp_cul_weng_desc:
|
||||
"Weng Coffee is one of the living legends of coffee shops in the Equator City, operating since 1970.",
|
||||
skp_cul_tropic_desc:
|
||||
"Tropic Cafe Pontianak is a pioneer of large-scale modern coffee shops in Pontianak, featuring a 24/7 non-stop concept with highly affordable prices.",
|
||||
skp_cul_shine_desc: "Trendy rice bowls with attractive presentation and abundant toppings.",
|
||||
skp_cul_melepar_desc: "Crispy, savory, and spicy chicken, a student favorite with a crunchy, fiery bite.",
|
||||
skp_cul_umi_desc: "Cheap, filling, and spicy smashed chicken with an intensely satisfying kick.",
|
||||
skp_cul_cw_desc: "CW Coffee originally started in 2015 as Cyber World iCafe, a high-speed 24-hour internet cafe.",
|
||||
skp_cul_nordu_desc: "NORDU Coffee & Eatery (popularly known as Kopi Nomor Dua) offers a comfortable place to work (WFH) with student-friendly coffee and meals.",
|
||||
skp_cul_kami_desc: "Toko Kami was founded in November 2021 by a creative youth named Yudistira Nusantara. The name is an acronym for Indonesian Snack and Beverage Shop.",
|
||||
skp_cul_lokale_desc: "Lokale was founded by Asmako in 2017. Rooted in the owner's passion for coffee brewing, Lokale brings modern coffee flavors tailored to the local palate.",
|
||||
skp_cul_weng_desc: "Weng Coffee is one of the living legends of coffee shops in the Equator City, operating since 1970.",
|
||||
skp_cul_tropic_desc: "Tropic Cafe Pontianak is a pioneer of large-scale modern coffee shops in Pontianak, featuring a 24/7 non-stop concept with highly affordable prices.",
|
||||
|
||||
// --- Living Cost Section ---
|
||||
skp_cost_eyebrow: "Student Living Cost",
|
||||
skp_cost_title: "Estimated Living Cost for Students in Pontianak",
|
||||
skp_cost_desc:
|
||||
"Good financial planning helps students go through their study period more comfortably in Pontianak.",
|
||||
skp_cost_desc: "Good financial planning helps students go through their study period more comfortably in Pontianak.",
|
||||
skp_cost_note: "*Data obtained is sourced from an internal survey",
|
||||
skp_cost_period: "per month",
|
||||
skp_cost_type_home: "Housing",
|
||||
@@ -320,18 +231,16 @@
|
||||
};
|
||||
|
||||
function currentLang() {
|
||||
if (typeof window.getLang === "function") {
|
||||
if (typeof window.getLang === 'function') {
|
||||
const l = window.getLang();
|
||||
if (l === "id" || l === "en") return l;
|
||||
if (l === 'id' || l === 'en') return l;
|
||||
}
|
||||
try {
|
||||
const saved = localStorage.getItem("if_untan_lang");
|
||||
if (saved === "id" || saved === "en") return saved;
|
||||
} catch (e) {
|
||||
/* localStorage unavailable */
|
||||
}
|
||||
const nav = (navigator.language || "id").toLowerCase();
|
||||
return nav.startsWith("en") ? "en" : "id";
|
||||
const saved = localStorage.getItem('if_untan_lang');
|
||||
if (saved === 'id' || saved === 'en') return saved;
|
||||
} catch (e) { /* localStorage unavailable */ }
|
||||
const nav = (navigator.language || 'id').toLowerCase();
|
||||
return nav.startsWith('en') ? 'en' : 'id';
|
||||
}
|
||||
|
||||
function skpT(key) {
|
||||
@@ -342,13 +251,13 @@
|
||||
function applySkp(root) {
|
||||
const scope = root || document;
|
||||
|
||||
scope.querySelectorAll("[data-skp-i18n]").forEach((el) => {
|
||||
const val = skpT(el.getAttribute("data-skp-i18n"));
|
||||
scope.querySelectorAll('[data-skp-i18n]').forEach(el => {
|
||||
const val = skpT(el.getAttribute('data-skp-i18n'));
|
||||
if (val != null) el.textContent = val;
|
||||
});
|
||||
|
||||
scope.querySelectorAll("[data-skp-i18n-placeholder]").forEach((el) => {
|
||||
const val = skpT(el.getAttribute("data-skp-i18n-placeholder"));
|
||||
scope.querySelectorAll('[data-skp-i18n-placeholder]').forEach(el => {
|
||||
const val = skpT(el.getAttribute('data-skp-i18n-placeholder'));
|
||||
if (val != null) el.placeholder = val;
|
||||
});
|
||||
}
|
||||
@@ -356,6 +265,6 @@
|
||||
window.skpT = skpT;
|
||||
window.applySkp = applySkp;
|
||||
|
||||
document.addEventListener("languageChanged", () => applySkp());
|
||||
document.addEventListener("DOMContentLoaded", () => applySkp());
|
||||
document.addEventListener('languageChanged', () => applySkp());
|
||||
document.addEventListener('DOMContentLoaded', () => applySkp());
|
||||
})();
|
||||
|
||||
@@ -1141,21 +1141,26 @@
|
||||
</div>
|
||||
|
||||
<main id="main-content" class="pt-[88px] lg:pt-[160px] min-h-screen bg-white">
|
||||
<div class="container">
|
||||
<div class="container mx-auto px-4 lg:px-8 py-12">
|
||||
<div class="mb-8 pb-8 border-b border-slate-200">
|
||||
<span class="bg-untan-yellow text-slate-900 text-[10px] font-bold uppercase tracking-widest px-2 py-0.5 inline-block mb-3">Tugas Halaman Statis</span>
|
||||
<h1 class="text-3xl lg:text-4xl font-bold text-slate-900 mb-2">Sekilas Informatika UNTAN</h1>
|
||||
<p class="text-slate-500 text-sm">Kelompok 01 — Jellyfish.Corp · Informatika UNTAN 2026</p>
|
||||
</div>
|
||||
<div id="assignment-body" class="prose prose-slate max-w-none">
|
||||
<!-- ================= START: BAGIAN YANG DIEDIT KELOMPOK ================= -->
|
||||
<!-- ===================== A. HERO ===================== -->
|
||||
<section class="jf-hero-landing">
|
||||
<div class="jf-hero-landing-bg"></div>
|
||||
<div class="container jf-hero-landing-inner">
|
||||
<div class="jf-hero-landing-content content">
|
||||
<div class="jf-hero-landing-content">
|
||||
<h1 class="jf-hero-headline" data-i18n="grp_jellyfish_hero_title">Sekilas Informatika<br>
|
||||
<h1 class="jf-hero-headline" data-i18n="grp_jellyfish_hero_subtitle" style="color: #feb401">Universitas Tanjungpura</h1>
|
||||
<p class="jf-hero-sub" data-i18n="grp_jellyfish_hero_desc">Mencetak talenta digital unggulan dari Kalimantan Barat untuk Indonesia dan
|
||||
dunia. Bergabunglah bersama kami dalam perjalanan membangun masa depan teknologi.</p>
|
||||
<div class="jf-hero-ctas">
|
||||
<a href="#kontak" class="jf-hero-cta-primary" data-i18n="grp_jellyfish_btn_register">Daftar Sekarang</a>
|
||||
<a href="#tentang" class="jf-hero-cta-secondary" data-i18n="grp_jellyfish_btn_learn">Pelajari Lebih Lanjut</a>
|
||||
<a href="#tentang" class="jf-hero-cta-secondary" data-i18n="grp_jellyfish_btn_learn">Pelajari Lebih ↓</a>
|
||||
</div>
|
||||
<div class="jf-hero-stats">
|
||||
<div class="jf-hs-item">
|
||||
@@ -1178,8 +1183,8 @@
|
||||
|
||||
<!-- ===================== B. TENTANG PRODI ===================== -->
|
||||
<section class="jf-section jf-section-white" id="tentang">
|
||||
<div class="container ">
|
||||
<div class="jf-about-layout content">
|
||||
<div class="container">
|
||||
<div class="jf-about-layout">
|
||||
<div class="jf-about-left">
|
||||
<span class="jf-badge" data-i18n="grp_jellyfish_about_badge">Tentang Prodi</span>
|
||||
<h2 class="jf-section-title" data-i18n="grp_jellyfish_about_title">Mengenal Program Studi Informatika UNTAN</h2>
|
||||
@@ -1327,7 +1332,7 @@
|
||||
|
||||
<!-- ===================== C. ANGKA ===================== -->
|
||||
<section class="jf-section jf-section-light">
|
||||
<div class="container content">
|
||||
<div class="container">
|
||||
<div class="jf-section-header jf-center">
|
||||
<span class="jf-badge" data-i18n="grp_jellyfish_stats_badge">Data & Statistik</span>
|
||||
<h2 class="jf-section-title" data-i18n="grp_jellyfish_stats_title">Informatika UNTAN dalam Angka</h2>
|
||||
@@ -1374,8 +1379,8 @@
|
||||
Informatika UNTAN (sejak 2023).</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="jf-rasio-wrapper" style="display:flex; justify-content:center; margin-top:1rem;">
|
||||
<div class="jf-stat-row-card" style="width:calc(33.333% - 1rem);">
|
||||
<div style="text-align:center;margin-top:1.5rem;">
|
||||
<div class="jf-stat-row-card" style="display:inline-block;padding:1rem 2.5rem;">
|
||||
<div class="jf-stat-row-label" data-i18n="grp_jellyfish_rasio_dosen">Rasio Dosen : Mahasiswa</div>
|
||||
<div class="jf-stat-row-num" style="color:#7c3aed;font-size:2rem;">1 : 11</div>
|
||||
<div style="font-size:0.75rem;color:#94a3b8;" data-i18n="grp_jellyfish_rasio_standar">Memenuhi standar BAN-PT</div>
|
||||
@@ -1386,7 +1391,7 @@
|
||||
|
||||
<!-- ===================== D. PENCAPAIAN ===================== -->
|
||||
<section class="jf-section jf-section-white">
|
||||
<div class="container content">
|
||||
<div class="container">
|
||||
<div class="jf-section-header jf-center">
|
||||
<span class="jf-badge" data-i18n="grp_jellyfish_achievement_badge">Prestasi</span>
|
||||
<h2 class="jf-section-title" data-i18n="grp_jellyfish_achievement_title">Pencapaian Membanggakan</h2>
|
||||
@@ -1474,7 +1479,7 @@
|
||||
|
||||
<!-- ===================== E. STUDY CLUB ===================== -->
|
||||
<section class="jf-section jf-section-light">
|
||||
<div class="container content">
|
||||
<div class="container">
|
||||
<div class="jf-section-header jf-center">
|
||||
<span class="jf-badge" data-i18n="grp_jellyfish_studyclub_badge">Komunitas</span>
|
||||
<h2 class="jf-section-title" data-i18n="grp_jellyfish_studyclub_title">Study Club</h2>
|
||||
@@ -1519,73 +1524,59 @@
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ===================== F. KARIR ===================== -->
|
||||
<!-- ===================== F. KARIR ===================== -->
|
||||
<section class="jf-section jf-section-white">
|
||||
<div class="container content">
|
||||
<div class="container">
|
||||
<div class="jf-karir-layout">
|
||||
<div class="jf-karir-left">
|
||||
<span class="jf-badge" data-i18n="grp_jellyfish_career_badge">Karir</span>
|
||||
<h2 class="jf-section-title" data-i18n="grp_jellyfish_career_title">Masa Depan Lulusan Informatika</h2>
|
||||
|
||||
<p data-i18n="grp_jellyfish_career_desc">Lulusan Prodi Informatika UNTAN diserap secara luas oleh berbagai sektor — mulai dari instansi pemerintah, korporasi swasta, lembaga pendidikan, hingga wirausaha mandiri. Kompetensi digital yang kuat membuka peluang karir di mana saja.</p>
|
||||
<p class="jf-karir-headline-italic" data-i18n="grp_jellyfish_career_headline">Lulusan Informatika UNTAN bukan hanya pencari kerja — mereka pencipta solusi.</p>
|
||||
<p data-i18n="grp_jellyfish_career_desc">Lulusan Prodi Informatika UNTAN diserap secara luas oleh industri teknologi, instansi pemerintah, BUMN, dan startup. Dengan bekal kompetensi digital yang kuat, karir cemerlang menanti di berbagai sektor strategis.</p>
|
||||
<div class="jf-karir-other" style="margin-top:1.5rem;">
|
||||
<strong data-i18n="grp_jellyfish_bidang_karir">Bidang Karir</strong>
|
||||
<strong data-i18n="grp_jellyfish_bidang_karir">Bidang Karir Lainnya:</strong>
|
||||
<div class="jf-chip-wrap" style="margin-top:0.5rem;">
|
||||
<span class="jf-chip">Web Developer</span>
|
||||
<span class="jf-chip">Data Engineer</span>
|
||||
<span class="jf-chip">Mobile Developer</span>
|
||||
<span class="jf-chip">UI / UX Designer</span>
|
||||
<span class="jf-chip">Networking / DevOps</span>
|
||||
<span class="jf-chip">Cybersecurity</span>
|
||||
<span class="jf-chip">Machine Learning / AI</span>
|
||||
<span class="jf-chip">Database Engineer</span>
|
||||
<span class="jf-chip">IT Project Manager</span>
|
||||
<span class="jf-chip">Database Admin</span>
|
||||
<span class="jf-chip">Cloud Architect</span>
|
||||
<span class="jf-chip">Game Developer</span>
|
||||
<span class="jf-chip">Business Intelligence</span>
|
||||
<span class="jf-chip">IoT Engineer</span>
|
||||
<span class="jf-chip" data-i18n="grp_jellyfish_akademisi">Akademisi / Dosen</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="jf-karir-right">
|
||||
<div class="jf-karir-card jf-karir-navy">
|
||||
<div class="jf-kc-title" data-i18n="grp_jellyfish_pemerintah">Pemerintah & Instansi Publik</div>
|
||||
<div class="jf-kc-title">Software Engineer</div>
|
||||
<div class="jf-kc-chips">
|
||||
<span>Diskominfo</span>
|
||||
<span>Bappeda</span>
|
||||
<span>BKPSDM</span>
|
||||
<span>Bapenda</span>
|
||||
<span>KPU</span>
|
||||
<span>BRIN</span>
|
||||
<span>Backend</span><span>Frontend</span><span>Mobile Dev</span><span>DevOps</span>
|
||||
</div>
|
||||
<div class="jf-kc-company">Gojek, Tokopedia, Traveloka, Startup</div>
|
||||
</div>
|
||||
<div class="jf-karir-card jf-karir-purple">
|
||||
<div class="jf-kc-title" data-i18n="grp_jellyfish_industri">Perusahaan Swasta & Korporasi</div>
|
||||
<div class="jf-kc-title">Data & AI Specialist</div>
|
||||
<div class="jf-kc-chips">
|
||||
<span>PT Telkom Indonesia</span>
|
||||
<span>Telkomsel</span>
|
||||
<span>PLN Icon Plus</span>
|
||||
<span>Bank BCA</span>
|
||||
<span>Grab</span>
|
||||
<span>Astra Daihatsu</span>
|
||||
<span>Data Scientist</span><span>ML Engineer</span><span>AI
|
||||
Researcher</span><span>Business Analyst</span>
|
||||
</div>
|
||||
<div class="jf-kc-company">Bank, BUMN, Fintech</div>
|
||||
</div>
|
||||
<div class="jf-karir-card jf-karir-green">
|
||||
<div class="jf-kc-title" data-i18n="grp_jellyfish_perguruan_tinggi">Pendidikan, Organisasi & Lembaga Sosial</div>
|
||||
<div class="jf-kc-title">Cybersecurity</div>
|
||||
<div class="jf-kc-chips">
|
||||
<span>UNTAN</span>
|
||||
<span>Politeknik Negeri Sambas</span>
|
||||
<span>STIKES Sambas</span>
|
||||
<span>SMA / SMP / SD</span>
|
||||
<span>Organisasi Keagamaan</span>
|
||||
<span>Penetration Tester</span><span>Security Analyst</span><span>Network
|
||||
Engineer</span>
|
||||
</div>
|
||||
<div class="jf-kc-company">BSSN, Kominfo, Perbankan</div>
|
||||
</div>
|
||||
<div class="jf-karir-card jf-karir-orange">
|
||||
<div class="jf-kc-title" data-i18n="grp_jellyfish_wirausaha">Wirausaha, UMKM & Freelance</div>
|
||||
<div class="jf-kc-title" data-i18n="grp_jellyfish_wirausaha">Wirausaha Digital</div>
|
||||
<div class="jf-kc-chips">
|
||||
<span>Freelancer</span>
|
||||
<span>Web Developer</span>
|
||||
<span>IT Consultant</span>
|
||||
<span>Startup Founder</span>
|
||||
<span>Creative Studio</span>
|
||||
<span>UMKM Digital</span>
|
||||
<span>Founder Startup</span><span>Freelancer</span><span>Digital
|
||||
Consultant</span><span>E-commerce</span>
|
||||
</div>
|
||||
<div class="jf-kc-company" data-i18n="grp_jellyfish_mandiri">Mandiri, Remote Work</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1594,7 +1585,7 @@
|
||||
|
||||
<!-- ===================== G. ALUMNI ===================== -->
|
||||
<section class="jf-section jf-section-light">
|
||||
<div class="container content">
|
||||
<div class="container">
|
||||
<div class="jf-section-header jf-center">
|
||||
<span class="jf-badge" data-i18n="grp_jellyfish_alumni_badge">Alumni</span>
|
||||
<h2 class="jf-section-title" data-i18n="grp_jellyfish_alumni_title">Kisah Sukses Alumni</h2>
|
||||
@@ -1683,7 +1674,7 @@
|
||||
|
||||
<!-- ===================== H. INFRASTRUKTUR ===================== -->
|
||||
<section class="jf-section jf-section-dark">
|
||||
<div class="container content">
|
||||
<div class="container">
|
||||
<div class="jf-section-header jf-center">
|
||||
<span class="jf-badge" data-i18n="grp_jellyfish_infra_badge">Infrastruktur</span>
|
||||
<h2 class="jf-section-title" style="color:white;" data-i18n="grp_jellyfish_infra_title">Infrastruktur dan Fasilitas</h2>
|
||||
@@ -1722,12 +1713,25 @@
|
||||
<div class="jf-infra-stat"><span>IEEE · Scopus · ACM</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="jf-license-bar">
|
||||
<span class="jf-lic-label" data-i18n="grp_jellyfish_license">Lisensi Perangkat Lunak Tersedia:</span>
|
||||
<div class="jf-lic-chips">
|
||||
<span>Microsoft Office 365</span>
|
||||
<span>JetBrains IDE</span>
|
||||
<span>Adobe Creative Cloud</span>
|
||||
<span>GitHub Enterprise</span>
|
||||
<span>Figma Education</span>
|
||||
<span>MATLAB</span>
|
||||
<span>Cisco Packet Tracer</span>
|
||||
<span>AWS Academy</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ===================== I. MITRA ===================== -->
|
||||
<section class="jf-section jf-section-white">
|
||||
<div class="container content">
|
||||
<div class="container">
|
||||
<div class="jf-section-header jf-center">
|
||||
<span class="jf-badge" data-i18n="grp_jellyfish_partner_badge">Kerjasama</span>
|
||||
<h2 class="jf-section-title" data-i18n="grp_jellyfish_partner_title">Mitra Strategis Informatika UNTAN</h2>
|
||||
@@ -1738,104 +1742,154 @@
|
||||
</div>
|
||||
|
||||
<div class="jf-mitra-group-title" data-i18n="grp_jellyfish_industri">Industri & Swasta</div>
|
||||
<div class="jf-mitra-grid" style="grid-template-columns:repeat(3,1fr);">
|
||||
<div class="jf-mitra-grid">
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-logo"></div>
|
||||
<div class="jf-mitra-name">PT. Indosat Ooredoo</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-logo"></div>
|
||||
<div class="jf-mitra-name">PT. PLN Nusantara</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_pln">Pembuatan aplikasi monitoring BBM untuk PLN Nusantara Power UP Kapuas (2025).</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="jf-mitra-group-title" data-i18n="grp_jellyfish_pemerintah">Instansi Pemerintah</div>
|
||||
<div class="jf-mitra-grid jf-mitra-grid-gov" style="grid-template-columns:repeat(3,1fr)">
|
||||
<div class="jf-mitra-grid jf-mitra-grid-gov" style="grid-template-columns:repeat(6,1fr)">
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">Diskominfo Kalbar</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_diskominfo_kalbar">Kerja sama dengan Diskominfo Kalbar untuk kerja praktek dan magang 2024-sekarang.</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">POLDA Kalbar</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_polda">Penyelenggaraan CAT (Computer Assesment Test).</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">Bappeda Sambas</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_bappeda_sambas">Pemutakhiran Geoportal Kabupaten Sambas pada infrastruktur Sambas GO.ID (2024).</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">Bappeda Sintang</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_bappeda_sintang">Penyusunan Rencana Induk Sistem Informasi Geospasial kabupaten Sintang 2019, dan Kajian Analisa Dampak Lingkungan TPA dan IPLT.</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">Bappeda Bengkayang</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_bappeda_bengkayang">Pembangunan Sistem Informasi Perencanaan Pembangunan Berbasis Data Geospasial dan Pendampingan Penyelenggaraan Informasi Geospasial Bagi Pemerintahan Daerah/Simpul Jaringan 2022.</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">BKPSDM</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_bkpsdm">Pengembangan dan pemeliharaan aplikasi E-Kinerja untuk manajemen kinerja aparatur sipil negara (2024).</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">BPBD Sintang</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_bpbd_sintang">Pembuatan peta potensi daerah rawan bencana banjir Kabupaten Sintang sebagai referensi mitigasi (2022).</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">BKD Kota Pontianak</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_bkd_pontianak">Pengadaan Peta GIS PBB-P2 Tahap II untuk pengelolaan data pajak bumi dan bangunan Kota Pontianak (2022).</div>
|
||||
<div class="jf-mitra-name">BKD Pontianak</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">Disperkim Singkawang</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_disperkim_singkawang">Review baseline dan pemetaan kawasan permukiman kumuh Kota Singkawang (2020).</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">Diskominfo Singkawang</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_diskominfo_singkawang">Kerja sama dengan Diskominfo Singkawang untuk kerja praktek dan magang 2024-sekarang.</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">Diskominfo Pontianak</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_diskominfo_pontianak">Kerja sama dengan Diskominfo Pontianak untuk kerja praktek dan magang 2024-sekarang.</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">Badan Penelitian dan Pengembangan</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_balitbang">Pengembangan Dan Pemanfaatan Informasi Geospasial untuk Kelitbangan di Provinsi Kalbar.</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="jf-mitra-group-title" data-i18n="grp_jellyfish_perguruan_tinggi">Perguruan Tinggi & Lembaga Riset</div>
|
||||
<div class="jf-mitra-grid jf-mitra-grid-gov" style="grid-template-columns:repeat(3,1fr);">
|
||||
<div class="jf-mitra-grid" style="grid-template-columns:repeat(6,1fr);">
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">UNIMAS Malaysia</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_unimas">Kerja sama pelaksanaan Study Excursion 2019-2025.</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">UUM Malaysia</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_uum">Kerja sama menyelenggarakan konferensi internasional (ICODSE) - 2019.</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">UCS Sarawak</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_ucs">Kerja sama menyelenggarakan konferensi internasional (ICODSE) - 2019.</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">UTEM Malaysia</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_utem">Kerjasama penyelenggaraan konferensi nasional.</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">IPB Indonesia</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_ipb">Kerja sama menyelenggarakan konferensi internasional (ICODSE) - 2019.</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">Politeknik Negeri Pontianak</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_polnep">Kerja sama dengan Politeknik Negeri Pontianak untuk kerja praktek dan magang 2024-sekarang.</div>
|
||||
<div class="jf-mitra-name">Polnep</div>
|
||||
</div>
|
||||
<div class="jf-mitra-card">
|
||||
<div class="jf-mitra-name">Poltekkes Pontianak</div>
|
||||
<div class="jf-mitra-desc" data-i18n="grp_jellyfish_mitra_poltekkes">Rancangan kerja sama program Informatika dengan Politeknik Kesehatan Kemenkes Pontianak (2025).</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ===================== VIDEO PROFIL ===================== -->
|
||||
<section class="jf-section jf-section-light">
|
||||
<div class="container">
|
||||
<div class="jf-section-header jf-center">
|
||||
<span class="jf-badge" data-i18n="grp_jellyfish_video_profil">Video Profil</span>
|
||||
<h2 class="jf-section-title" data-i18n="grp_jellyfish_profil_ft">Profil Fakultas Teknik UNTAN</h2>
|
||||
<p class="jf-section-sub">
|
||||
<center data-i18n="grp_jellyfish_video_desc">Kenali lebih dekat Fakultas Teknik Universitas Tanjungpura melalui video profil resmi
|
||||
berikut.</center>
|
||||
</p>
|
||||
</div>
|
||||
<div style="
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
margin-top: 2rem;
|
||||
">
|
||||
<a href="https://youtu.be/52Tn9e750aY?si=0_D7ZJMm1Yv8OQeh" target="_blank" rel="noopener noreferrer"
|
||||
style="
|
||||
display: block;
|
||||
width: 100%;
|
||||
max-width: 800px;
|
||||
border-radius: 16px;
|
||||
overflow: hidden;
|
||||
box-shadow: 0 8px 40px rgba(0,0,0,0.18);
|
||||
aspect-ratio: 16/9;
|
||||
position: relative;
|
||||
text-decoration: none;
|
||||
background: #000;
|
||||
">
|
||||
<!-- Thumbnail YouTube (maxresdefault / hqdefault) -->
|
||||
<img src="https://img.youtube.com/vi/52Tn9e750aY/maxresdefault.jpg"
|
||||
onerror="this.src='https://img.youtube.com/vi/52Tn9e750aY/hqdefault.jpg'"
|
||||
alt="Profil Fakultas Teknik UNTAN" style="
|
||||
width: 100%; height: 100%;
|
||||
object-fit: cover;
|
||||
display: block;
|
||||
transition: opacity 0.3s;
|
||||
" onmouseover="this.style.opacity='0.85'" onmouseout="this.style.opacity='1'" />
|
||||
<!-- Overlay tombol play -->
|
||||
<div style="
|
||||
position: absolute;
|
||||
inset: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
gap: 12px;
|
||||
">
|
||||
<div style="
|
||||
width: 72px; height: 72px;
|
||||
background: rgba(255,0,0,0.9);
|
||||
border-radius: 50%;
|
||||
display: flex; align-items: center; justify-content: center;
|
||||
box-shadow: 0 4px 20px rgba(0,0,0,0.4);
|
||||
transition: transform 0.2s;
|
||||
" onmouseover="this.style.transform='scale(1.1)'"
|
||||
onmouseout="this.style.transform='scale(1)'">
|
||||
<svg width="28" height="28" viewBox="0 0 24 24" fill="white">
|
||||
<path d="M8 5v14l11-7z" />
|
||||
</svg>
|
||||
</div>
|
||||
<span style="
|
||||
color: #fff;
|
||||
font-size: 15px;
|
||||
font-weight: 600;
|
||||
background: rgba(0,0,0,0.55);
|
||||
padding: 5px 16px;
|
||||
border-radius: 20px;
|
||||
letter-spacing: 0.3px;
|
||||
" data-i18n="grp_jellyfish_watch">Tonton di YouTube</span>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<!-- ===================== K. CTA / KONTAK ===================== -->
|
||||
<section class="jf-section jf-cta-section" id="kontak">
|
||||
<div class="container jf-cta-inner content">
|
||||
<div class="container jf-cta-inner">
|
||||
<div class="jf-cta-left">
|
||||
<span class="jf-badge" data-i18n="grp_jellyfish_cta_badge">Bergabung Bersama Kami</span>
|
||||
<h2 class="jf-cta-title" data-i18n="grp_jellyfish_cta_title">Mulai Perjalanan Digital Anda <span class="jf-cta-highlight" data-i18n="grp_jellyfish_cta_highlight">Bersama Kami</span></h2>
|
||||
|
||||
@@ -252,9 +252,7 @@ h1, h2, h3, h4, h5, h6 {
|
||||
/* Shell layout tambahan */
|
||||
.nav { background: #003150; padding: 1rem 0; }
|
||||
.nav .brand { color: white; font-weight: 700; font-size: 1.1rem; letter-spacing: 0.02em; }
|
||||
.container { max-width: 1100px;}
|
||||
|
||||
.content {padding: 0 50px;}
|
||||
.container { max-width: 1100px; margin: 0 auto; padding: 0 1.5rem; }
|
||||
|
||||
.hero { position: relative; background: linear-gradient(135deg, #003150 0%, #005eb8 60%, #00b5e2 100%); min-height: 320px; display: flex; align-items: flex-end; overflow: hidden; }
|
||||
.hero-bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; opacity: 0.18; }
|
||||
@@ -1514,37 +1512,6 @@ a { text-decoration: none; }
|
||||
box-shadow: 0 6px 20px rgba(0,94,184,.1);
|
||||
transform: translateY(-3px);
|
||||
}
|
||||
|
||||
.jf-mitra-desc {
|
||||
font-size: .67rem;
|
||||
color: #94a3b8;
|
||||
line-height: 1.45;
|
||||
margin-top: .2rem;
|
||||
font-weight: 400;
|
||||
}
|
||||
|
||||
.jf-mitra-name {
|
||||
font-size: .75rem;
|
||||
font-weight: 600;
|
||||
color: var(--slate);
|
||||
line-height: 1.35;
|
||||
}
|
||||
|
||||
.jf-mitra-card {
|
||||
background: var(--white);
|
||||
border: 1px solid #e8eef5;
|
||||
border-radius: .85rem;
|
||||
padding: 1rem .85rem;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: flex-start;
|
||||
text-align: center;
|
||||
min-height: 90px;
|
||||
gap: .35rem;
|
||||
transition: all .25s;
|
||||
}
|
||||
|
||||
.jf-mitra-logo { font-size: 1.5rem; }
|
||||
.jf-mitra-name { font-size: .68rem; font-weight: 600; color: var(--slate); line-height: 1.35; }
|
||||
|
||||
@@ -1732,7 +1699,6 @@ a { text-decoration: none; }
|
||||
.jf-mitra-grid { grid-template-columns: repeat(3, 1fr); }
|
||||
.jf-mitra-grid-gov { grid-template-columns: repeat(3, 1fr); }
|
||||
}
|
||||
|
||||
@media (max-width: 1024px) {
|
||||
.jf-about-layout { grid-template-columns: 1fr; }
|
||||
.jf-timeline-card { position: static; max-height: none; }
|
||||
@@ -1759,14 +1725,7 @@ a { text-decoration: none; }
|
||||
.jf-hs-item { padding: 0; }
|
||||
.jf-cta-title { font-size: 1.9rem; }
|
||||
}
|
||||
@media (max-width: 640px) {
|
||||
.jf-stats-row2 {
|
||||
grid-template-columns: 1fr;
|
||||
}
|
||||
.jf-rasio-wrapper .jf-stat-row-card {
|
||||
width: 100% !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* =====================================================
|
||||
WHITE TEXT FIXES — Dark Background Sections
|
||||
===================================================== */
|
||||
|
||||
+26
-70
@@ -1,4 +1,4 @@
|
||||
<!DOCTYPE html>
|
||||
<!DOCTYPE html>
|
||||
<html lang="id" class="scroll-smooth">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
@@ -1188,7 +1188,7 @@
|
||||
|
||||
<div class="custom-stats">
|
||||
<div class="custom-stat-box">
|
||||
<div class="custom-stat-num custom-serif">212</div>
|
||||
<div class="custom-stat-num custom-serif">212<span class="custom-stat-plus">+</span></div>
|
||||
<div class="custom-stat-label" data-i18n="grp_m4n1fest_hero_stat_alumni">TOTAL ALUMNI</div>
|
||||
<div class="custom-stat-desc" style="font-size: 0.65rem; color: #a1a1aa; margin-top: 4px; line-height: 1.35; font-weight: normal; font-family: sans-serif;" data-i18n="grp_m4n1fest_hero_stat_alumni_desc">data diperoleh dari alumni terdata di tracer study</div>
|
||||
</div>
|
||||
@@ -1197,7 +1197,7 @@
|
||||
<div class="custom-stat-label" data-i18n="grp_m4n1fest_hero_stat_batch">ANGKATAN</div>
|
||||
</div>
|
||||
<div class="custom-stat-box" style="border-right: none;">
|
||||
<div class="custom-stat-num custom-serif">170+</div>
|
||||
<div class="custom-stat-num custom-serif">202<span class="custom-stat-plus">+</span></div>
|
||||
<div class="custom-stat-label" data-i18n="grp_m4n1fest_hero_stat_company">PERUSAHAAN</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1445,7 +1445,7 @@
|
||||
class="logo-initials"
|
||||
style="background: #f3f4f6; color: #4b5563"
|
||||
>
|
||||
160+
|
||||
202+
|
||||
</div>
|
||||
<span class="logo-name" style="color: #6b7280" data-i18n="grp_m4n1fest_logo_others">Lainnya</span>
|
||||
</div>
|
||||
@@ -1548,7 +1548,7 @@
|
||||
<path d="M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7" />
|
||||
<path d="M18.5 2.5a2.121 2.121 0 1 1 3 3L12 15l-4 1 1-4z" />
|
||||
</svg>
|
||||
<span data-i18n="grp_m4n1fest_skill_btn_contrib">Isi Form</span>
|
||||
<span data-i18n="grp_m4n1fest_skill_btn_contrib">Isi Form Kontribusi</span>
|
||||
</a>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1593,23 +1593,23 @@
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr style="background: #fff; border-bottom: 1px solid #f1f5f9;">
|
||||
<td style="padding: 14px 20px;" data-i18n="grp_m4n1fest_table_p1">2024 Genap</td>
|
||||
<td style="padding: 14px 20px;">2024 Genap</td>
|
||||
<td style="padding: 14px 20px; text-align: right;">50</td>
|
||||
</tr>
|
||||
<tr style="background: #f8fafc; border-bottom: 1px solid #f1f5f9;">
|
||||
<td style="padding: 14px 20px;" data-i18n="grp_m4n1fest_table_p2">2024 Ganjil</td>
|
||||
<td style="padding: 14px 20px;">2024 Ganjil</td>
|
||||
<td style="padding: 14px 20px; text-align: right;">27</td>
|
||||
</tr>
|
||||
<tr style="background: #fff; border-bottom: 1px solid #f1f5f9;">
|
||||
<td style="padding: 14px 20px;" data-i18n="grp_m4n1fest_table_p3">2023 Genap</td>
|
||||
<td style="padding: 14px 20px;">2023 Genap</td>
|
||||
<td style="padding: 14px 20px; text-align: right;">63</td>
|
||||
</tr>
|
||||
<tr style="background: #f8fafc; border-bottom: 1px solid #f1f5f9;">
|
||||
<td style="padding: 14px 20px;" data-i18n="grp_m4n1fest_table_p4">2023 Ganjil</td>
|
||||
<td style="padding: 14px 20px;">2023 Ganjil</td>
|
||||
<td style="padding: 14px 20px; text-align: right;">27</td>
|
||||
</tr>
|
||||
<tr style="background: #fff; border-bottom: 1px solid #e2e8f0;">
|
||||
<td style="padding: 14px 20px;" data-i18n="grp_m4n1fest_table_p5">2022 Genap</td>
|
||||
<td style="padding: 14px 20px;">2022 Genap</td>
|
||||
<td style="padding: 14px 20px; text-align: right;">45</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
@@ -1719,7 +1719,7 @@
|
||||
<div class="testi-meta">
|
||||
<div class="testi-name">Izhan Fakhruzi</div>
|
||||
<div class="testi-role" data-i18n="grp_m4n1fest_testi3_role">
|
||||
Dosen Tetap, UMP & Peneliti, Universidad de Granada · Angkatan 2005
|
||||
Dosen Tetap, UMP & Peneliti, Universidad de Granada
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -1831,7 +1831,7 @@
|
||||
font-weight: 600;
|
||||
"
|
||||
data-i18n="grp_m4n1fest_event2_meta"
|
||||
>HUT Informatika</span
|
||||
>Informatic Anniversary</span
|
||||
>
|
||||
</div>
|
||||
<p class="event-desc" data-i18n="grp_m4n1fest_event2_desc">
|
||||
@@ -1990,7 +1990,7 @@
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label class="form-label" data-i18n="grp_m4n1fest_form_nim">NIM</label>
|
||||
<input type="text" id="ika-nim" class="form-input" placeholder="D1041..." />
|
||||
<input type="text" id="ika-nim" class="form-input" placeholder="H1031..." />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" data-i18n="grp_m4n1fest_form_angkatan">Angkatan *</label>
|
||||
@@ -2002,7 +2002,7 @@
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label class="form-label" data-i18n="grp_m4n1fest_form_hp">No. HP / WhatsApp *</label>
|
||||
<input type="tel" id="ika-hp" class="form-input" placeholder="0821xxxxx" />
|
||||
<input type="tel" id="ika-hp" class="form-input" placeholder="+62 812-xxxx-xxxx" />
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label class="form-label" data-i18n="grp_m4n1fest_form_email">Email Aktif *</label>
|
||||
@@ -2026,7 +2026,7 @@
|
||||
<div class="form-group">
|
||||
<label class="form-label" data-i18n-html="grp_m4n1fest_form_instansi">Tempat Bekerja / Instansi
|
||||
<span class="form-note-optional">(opsional)</span></label>
|
||||
<input type="text" id="ika-instansi" class="form-input" placeholder="Contoh: PT. Telkom Indonesia, Google..." data-i18n-placeholder="grp_m4n1fest_form_instansi_placeholder" />
|
||||
<input type="text" id="ika-instansi" class="form-input" placeholder="Contoh: PT. Telkom Indonesia, Google..." />
|
||||
</div>
|
||||
|
||||
<!-- 3 Skill -->
|
||||
@@ -2047,7 +2047,7 @@
|
||||
<option>Cybersecurity</option>
|
||||
<option>Machine Learning / AI</option>
|
||||
<option>Database</option>
|
||||
<option value="Lainnya" data-i18n="grp_m4n1fest_form_skill_others">Lainnya</option>
|
||||
<option>Lainnya</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -2062,7 +2062,7 @@
|
||||
<option>Cybersecurity</option>
|
||||
<option>Machine Learning / AI</option>
|
||||
<option>Database</option>
|
||||
<option value="Lainnya" data-i18n="grp_m4n1fest_form_skill_others">Lainnya</option>
|
||||
<option>Lainnya</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group">
|
||||
@@ -2077,7 +2077,7 @@
|
||||
<option>Cybersecurity</option>
|
||||
<option>Machine Learning / AI</option>
|
||||
<option>Database</option>
|
||||
<option value="Lainnya" data-i18n="grp_m4n1fest_form_skill_others">Lainnya</option>
|
||||
<option>Lainnya</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
@@ -2844,59 +2844,20 @@
|
||||
const spinnerElement = document.getElementById('skill-note-spinner');
|
||||
const noteTextElement = document.getElementById('skill-note-text');
|
||||
|
||||
let alumniCount = 0;
|
||||
let isDataFetched = false;
|
||||
let isFetchFailed = false;
|
||||
|
||||
// Menampilkan catatan status di bawah grafik keahlian dengan dukungan bilingual
|
||||
function setSkillNote(shouldSpin) {
|
||||
// Menampilkan catatan status di bawah grafik keahlian
|
||||
function setSkillNote(text, shouldSpin, shouldShowCta) {
|
||||
if (spinnerElement) {
|
||||
spinnerElement.style.animation = shouldSpin ? 'spin 1s linear infinite' : 'none';
|
||||
if (!shouldSpin) {
|
||||
spinnerElement.style.display = 'none';
|
||||
} else {
|
||||
spinnerElement.style.display = 'inline-block';
|
||||
}
|
||||
}
|
||||
if (!noteTextElement) return;
|
||||
|
||||
const currentLang = typeof getLang === 'function' ? getLang() : 'id';
|
||||
|
||||
if (!isDataFetched) {
|
||||
if (isFetchFailed) {
|
||||
if (currentLang === 'en') {
|
||||
noteTextElement.innerHTML = `Skill data is empty, help us complete this data! <a href="#kontribusi" style="color:#2352a0;font-weight:700;text-decoration:underline;text-underline-offset:2px;">fill form</a>`;
|
||||
} else {
|
||||
noteTextElement.innerHTML = `Data skill masih kosong, bantu kami lengkapi data ini! <a href="#kontribusi" style="color:#2352a0;font-weight:700;text-decoration:underline;text-underline-offset:2px;">isi form</a>`;
|
||||
}
|
||||
} else {
|
||||
noteTextElement.textContent = currentLang === 'en' ? 'Loading alumni skill data...' : 'Memuat data skill alumni...';
|
||||
}
|
||||
if (shouldShowCta) {
|
||||
noteTextElement.innerHTML = `${text} <a href="#kontribusi" style="color:#2352a0;font-weight:700;text-decoration:underline;text-underline-offset:2px;">Isi form kontribusi</a>`;
|
||||
} else {
|
||||
if (alumniCount === 0) {
|
||||
if (currentLang === 'en') {
|
||||
noteTextElement.innerHTML = `Skill data is empty, help us complete this data! <a href="#kontribusi" style="color:#2352a0;font-weight:700;text-decoration:underline;text-underline-offset:2px;">fill form</a>`;
|
||||
} else {
|
||||
noteTextElement.innerHTML = `Data skill masih kosong, bantu kami lengkapi data ini! <a href="#kontribusi" style="color:#2352a0;font-weight:700;text-decoration:underline;text-underline-offset:2px;">isi form</a>`;
|
||||
}
|
||||
} else {
|
||||
if (currentLang === 'en') {
|
||||
noteTextElement.textContent = `Data from ${alumniCount} verified alumni.`;
|
||||
} else {
|
||||
noteTextElement.textContent = `Data dari ${alumniCount} alumni yang diverifikasi.`;
|
||||
}
|
||||
}
|
||||
noteTextElement.textContent = text;
|
||||
}
|
||||
}
|
||||
|
||||
// Terapkan translasi teks saat memuat halaman
|
||||
setSkillNote(true);
|
||||
|
||||
// Pasang event listener untuk menangani pergantian bahasa dinamis
|
||||
document.addEventListener('languageChanged', () => {
|
||||
setSkillNote(isDataFetched ? false : !isFetchFailed);
|
||||
});
|
||||
|
||||
// Menyaring dan mengelompokkan teks bebas ke kategori keahlian terstandar
|
||||
function normalizeSkill(rawSkillText) {
|
||||
if (!rawSkillText) return null;
|
||||
@@ -2959,22 +2920,17 @@
|
||||
.then(responseText => {
|
||||
const rows = parseGoogleSheetsJson(responseText);
|
||||
|
||||
isDataFetched = true;
|
||||
if (rows.length === 0) {
|
||||
alumniCount = 0;
|
||||
setSkillNote(false);
|
||||
setSkillNote('Data skill masih kosong, bantu kami lengkapi data ini!', false, false);
|
||||
return;
|
||||
}
|
||||
|
||||
alumniCount = rows.length;
|
||||
const counts = calculateSkillCounts(rows);
|
||||
updateSkillBarsUI(counts);
|
||||
setSkillNote(false);
|
||||
setSkillNote(`Data dari ${rows.length} alumni yang diverifikasi.`, false, false);
|
||||
})
|
||||
.catch(() => {
|
||||
isDataFetched = false;
|
||||
isFetchFailed = true;
|
||||
setSkillNote(false);
|
||||
setSkillNote('Data skill masih kosong, bantu kami lengkapi data ini!', false, false);
|
||||
});
|
||||
})();
|
||||
|
||||
|
||||
@@ -1198,12 +1198,6 @@ ul.achiever-achievements li::before {
|
||||
font-size: 0.74rem;
|
||||
color: var(--muted);
|
||||
margin-top: 1px;
|
||||
min-height: 3.8em;
|
||||
}
|
||||
@media (max-width: 660px) {
|
||||
.testi-role {
|
||||
min-height: auto;
|
||||
}
|
||||
}
|
||||
.stars {
|
||||
display: flex;
|
||||
|
||||
+59
-35
@@ -76,7 +76,10 @@
|
||||
window.APP_CONFIG = window.APP_CONFIG || {
|
||||
debugLogs: false,
|
||||
dashboardRuntimeFetch: 'always',
|
||||
dashboardApiUrl: 'https://proxykbk.netlify.app/.netlify/functions/dashboard',
|
||||
dashboardTargetUrl: 'https://dashboard.informatika.untan.ac.id/index.php?penelitian',
|
||||
dashboardProxyTemplates: [
|
||||
'https://api.codetabs.com/v1/proxy?quest={{url}}'
|
||||
]
|
||||
};
|
||||
</script>
|
||||
<!-- RODA_DASHBOARD_DATA -->
|
||||
@@ -1628,22 +1631,6 @@
|
||||
updateStatPub(newData.length);
|
||||
}
|
||||
|
||||
async function fetchProxyRows(proxyUrl) {
|
||||
const controller = new AbortController();
|
||||
const timeoutId = setTimeout(() => controller.abort(), 15000);
|
||||
|
||||
try {
|
||||
const response = await fetch(proxyUrl, { signal: controller.signal });
|
||||
if (!response.ok) throw new Error(`HTTP_ERROR_${response.status}`);
|
||||
|
||||
const responseData = await response.text();
|
||||
const html = extractDashboardHtml(responseData);
|
||||
return parseDashboardRows(html);
|
||||
} finally {
|
||||
clearTimeout(timeoutId);
|
||||
}
|
||||
}
|
||||
|
||||
async function fetchDashboardData() {
|
||||
const grid = document.getElementById('riset-grid');
|
||||
if (grid) {
|
||||
@@ -1656,33 +1643,70 @@
|
||||
}
|
||||
|
||||
let lastError = null;
|
||||
|
||||
if (isDashboardRuntimeFetchAllowed()) {
|
||||
const dashboardApiUrl = window.APP_CONFIG?.dashboardApiUrl?.trim();
|
||||
|
||||
if (dashboardApiUrl) {
|
||||
try {
|
||||
const rows = await fetchProxyRows(dashboardApiUrl);
|
||||
applyDashboardRows(rows);
|
||||
return;
|
||||
} catch (error) {
|
||||
lastError = error;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Fallback ke data yang di-embed saat build jika runtime fetch gagal atau dinonaktifkan
|
||||
const embeddedHtml = readEmbeddedDashboardHtml();
|
||||
if (embeddedHtml) {
|
||||
try {
|
||||
applyDashboardRows(parseDashboardRows(embeddedHtml));
|
||||
return;
|
||||
} catch (error) {
|
||||
lastError = lastError || error;
|
||||
lastError = error;
|
||||
}
|
||||
}
|
||||
|
||||
renderRisetFeedback('Pemuatan Data Gagal', getDashboardErrorMessage(lastError || new Error('DASHBOARD_RUNTIME_FETCH_DISABLED')), 'Coba Lagi', 'fetchDashboardData()');
|
||||
if (!isDashboardRuntimeFetchAllowed()) {
|
||||
renderRisetFeedback('Pemuatan Data Gagal', getDashboardErrorMessage(lastError || new Error('DASHBOARD_RUNTIME_FETCH_DISABLED')), 'Coba Lagi', 'fetchDashboardData()');
|
||||
return;
|
||||
}
|
||||
|
||||
const targetUrl = window.APP_CONFIG?.dashboardTargetUrl?.trim();
|
||||
const proxyTemplates = Array.isArray(window.APP_CONFIG?.dashboardProxyTemplates)
|
||||
? window.APP_CONFIG.dashboardProxyTemplates.filter(Boolean)
|
||||
: [];
|
||||
|
||||
// Endpoint server.js hanya ada saat development lokal.
|
||||
const proxyServers = shouldUseLocalDashboardProxy() ? [() => '/api/dashboard'] : [];
|
||||
|
||||
// Deployment static memakai proxy publik karena tidak menjalankan server.js.
|
||||
if (targetUrl) {
|
||||
proxyTemplates.forEach((template) => {
|
||||
proxyServers.push((url) => template
|
||||
.replaceAll('{{url}}', encodeURIComponent(url))
|
||||
.replaceAll('{{rawUrl}}', url)
|
||||
.replaceAll('{{ts}}', String(Date.now())));
|
||||
});
|
||||
}
|
||||
|
||||
if (!proxyServers.length) {
|
||||
renderRisetFeedback('Pemuatan Data Gagal', getDashboardErrorMessage(new Error('DASHBOARD_PROXY_NOT_CONFIGURED')), 'Coba Lagi', 'fetchDashboardData()');
|
||||
return;
|
||||
}
|
||||
|
||||
for (const getProxyUrl of proxyServers) {
|
||||
const controller = new AbortController();
|
||||
const timeoutId = setTimeout(() => controller.abort(), 15000);
|
||||
|
||||
try {
|
||||
const proxyUrl = getProxyUrl(targetUrl);
|
||||
|
||||
const response = await fetch(proxyUrl, { signal: controller.signal });
|
||||
clearTimeout(timeoutId);
|
||||
|
||||
if (!response.ok) throw new Error(`HTTP_ERROR_${response.status}`);
|
||||
|
||||
const responseData = await response.text();
|
||||
const html = extractDashboardHtml(responseData);
|
||||
const rows = parseDashboardRows(html);
|
||||
applyDashboardRows(rows);
|
||||
return; // Berhasil! Keluar dari loop
|
||||
} catch (error) {
|
||||
clearTimeout(timeoutId);
|
||||
lastError = error;
|
||||
// Lanjut ke proxy berikutnya...
|
||||
}
|
||||
}
|
||||
|
||||
// Jika semua proxy gagal
|
||||
renderRisetFeedback('Pemuatan Data Gagal', getDashboardErrorMessage(lastError), 'Coba Lagi', 'fetchDashboardData()');
|
||||
}
|
||||
|
||||
|
||||
|
||||
Generated
+13
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"name": "roda",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "roda",
|
||||
"version": "1.0.0",
|
||||
"license": "ISC"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,3 +1,14 @@
|
||||
{
|
||||
"type": "commonjs"
|
||||
}
|
||||
"name": "roda",
|
||||
"version": "1.0.0",
|
||||
"description": "Project website untuk menampilkan sorotan dan prestasi karya mahasiswa program studi Informatika Universitas Tanjungpura.",
|
||||
"main": "server.js",
|
||||
"scripts": {
|
||||
"test": "echo \"Error: no test specified\" && exit 1",
|
||||
"start": "node server.js",
|
||||
"dev": "node server.js"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"license": "ISC"
|
||||
}
|
||||
+85
-38
@@ -6,21 +6,64 @@ const { URL } = require('url');
|
||||
const ROOT_DIR = __dirname;
|
||||
const PARENT_DIR = path.join(__dirname, '..', '..');
|
||||
const INDEX_PATH = path.join(ROOT_DIR, 'index.html');
|
||||
const HOST = process.env.HOST || '127.0.0.1';
|
||||
const ENV_PATH = path.join(ROOT_DIR, '.env');
|
||||
const HOST = '127.0.0.1';
|
||||
const PORT = Number(process.env.PORT || 3000);
|
||||
const DASHBOARD_TARGET_URL = 'https://dashboard.informatika.untan.ac.id/index.php?penelitian';
|
||||
const RODA_PATH_PREFIX = '/groups/RODA';
|
||||
|
||||
function logServerError(scope, error, extra = {}) {
|
||||
console.error(`[${scope}]`, error && error.stack ? error.stack : error, extra);
|
||||
}
|
||||
|
||||
function parseEnvFile(filePath) {
|
||||
if (!fs.existsSync(filePath)) {
|
||||
return {};
|
||||
}
|
||||
|
||||
const env = {};
|
||||
const lines = fs.readFileSync(filePath, 'utf8').split(/\r?\n/);
|
||||
|
||||
for (const rawLine of lines) {
|
||||
const line = rawLine.trim();
|
||||
if (!line || line.startsWith('#')) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const separatorIndex = line.indexOf('=');
|
||||
if (separatorIndex === -1) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const key = line.slice(0, separatorIndex).trim();
|
||||
let value = line.slice(separatorIndex + 1).trim();
|
||||
|
||||
if (
|
||||
(value.startsWith('"') && value.endsWith('"')) ||
|
||||
(value.startsWith("'") && value.endsWith("'"))
|
||||
) {
|
||||
value = value.slice(1, -1);
|
||||
}
|
||||
|
||||
env[key] = value;
|
||||
}
|
||||
|
||||
return env;
|
||||
}
|
||||
|
||||
function getAppConfig() {
|
||||
const env = {
|
||||
...parseEnvFile(ENV_PATH),
|
||||
...process.env
|
||||
};
|
||||
|
||||
const dashboardProxyTemplates = [
|
||||
env.DASHBOARD_PROXY_1,
|
||||
env.DASHBOARD_PROXY_2,
|
||||
env.DASHBOARD_PROXY_3
|
||||
].filter(Boolean);
|
||||
|
||||
return {
|
||||
debugLogs: false,
|
||||
dashboardRuntimeFetch: 'always',
|
||||
dashboardApiUrl: 'api/dashboard',
|
||||
dashboardTargetUrl: DASHBOARD_TARGET_URL,
|
||||
dashboardTargetUrl: env.DASHBOARD_TARGET_URL || '',
|
||||
dashboardProxyTemplates
|
||||
};
|
||||
}
|
||||
|
||||
@@ -28,6 +71,10 @@ const DASHBOARD_CACHE_TTL_MS = 5 * 60 * 1000;
|
||||
let dashboardCache = { html: null, timestamp: 0 };
|
||||
|
||||
async function fetchDashboardHtml() {
|
||||
const targetUrl = getAppConfig().dashboardTargetUrl;
|
||||
if (!targetUrl) {
|
||||
throw new Error('DASHBOARD_TARGET_URL kosong');
|
||||
}
|
||||
|
||||
const now = Date.now();
|
||||
if (dashboardCache.html && (now - dashboardCache.timestamp) < DASHBOARD_CACHE_TTL_MS) {
|
||||
@@ -37,7 +84,7 @@ async function fetchDashboardHtml() {
|
||||
const controller = new AbortController();
|
||||
const timeoutId = setTimeout(() => controller.abort(), 12000);
|
||||
try {
|
||||
const response = await fetch(DASHBOARD_TARGET_URL, {
|
||||
const response = await fetch(targetUrl, {
|
||||
signal: controller.signal,
|
||||
headers: {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36'
|
||||
@@ -59,14 +106,39 @@ async function fetchDashboardHtml() {
|
||||
}
|
||||
}
|
||||
|
||||
function validateAppConfig(config) {
|
||||
const errors = [];
|
||||
|
||||
if (!config.dashboardTargetUrl) {
|
||||
errors.push('DASHBOARD_TARGET_URL belum diisi.');
|
||||
}
|
||||
|
||||
if (!Array.isArray(config.dashboardProxyTemplates) || !config.dashboardProxyTemplates.length) {
|
||||
errors.push('Minimal satu DASHBOARD_PROXY_* harus diisi.');
|
||||
}
|
||||
|
||||
return errors;
|
||||
}
|
||||
|
||||
function injectConfig(html) {
|
||||
const configScript = `<script>window.APP_CONFIG = ${JSON.stringify(getAppConfig())};</script>`;
|
||||
const defaultConfigScript = '<script>\n window.APP_CONFIG = window.APP_CONFIG || {\n dashboardTargetUrl: \'\',\n dashboardProxyTemplates: []\n };\n </script>';
|
||||
|
||||
if (html.includes(defaultConfigScript)) {
|
||||
return html.replace(defaultConfigScript, configScript);
|
||||
}
|
||||
|
||||
return html.replace('</head>', ` ${configScript}\n</head>`);
|
||||
}
|
||||
|
||||
function sendHtml(res) {
|
||||
try {
|
||||
const html = fs.readFileSync(INDEX_PATH, 'utf8');
|
||||
const configErrors = validateAppConfig(getAppConfig());
|
||||
if (configErrors.length) {
|
||||
logServerError('config', new Error('Invalid app config'), { configErrors });
|
||||
}
|
||||
|
||||
const withConfig = injectConfig(html);
|
||||
res.writeHead(200, { 'Content-Type': 'text/html; charset=utf-8' });
|
||||
res.end(withConfig);
|
||||
@@ -123,53 +195,28 @@ function sendNotFound(res) {
|
||||
res.end('Not found');
|
||||
}
|
||||
|
||||
function getRodaStaticPathname(pathname) {
|
||||
if (pathname === RODA_PATH_PREFIX || pathname === `${RODA_PATH_PREFIX}/` || pathname === `${RODA_PATH_PREFIX}/index.html`) {
|
||||
return '/index.html';
|
||||
}
|
||||
|
||||
if (pathname.startsWith(`${RODA_PATH_PREFIX}/`)) {
|
||||
return pathname.slice(RODA_PATH_PREFIX.length);
|
||||
}
|
||||
|
||||
return pathname;
|
||||
}
|
||||
|
||||
const server = http.createServer((req, res) => {
|
||||
try {
|
||||
const requestUrl = new URL(req.url, `http://${req.headers.host}`);
|
||||
const pathname = requestUrl.pathname;
|
||||
|
||||
if (pathname === '/' || pathname === '/index.html' || pathname === RODA_PATH_PREFIX || pathname === `${RODA_PATH_PREFIX}/` || pathname === `${RODA_PATH_PREFIX}/index.html`) {
|
||||
if (pathname === '/' || pathname === '/index.html') {
|
||||
sendHtml(res);
|
||||
return;
|
||||
}
|
||||
|
||||
if (pathname === '/api/dashboard' || pathname === `${RODA_PATH_PREFIX}/api/dashboard`) {
|
||||
if (req.method === 'OPTIONS') {
|
||||
res.writeHead(204, {
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
'Access-Control-Allow-Methods': 'GET',
|
||||
});
|
||||
res.end();
|
||||
return;
|
||||
}
|
||||
|
||||
if (pathname === '/api/dashboard') {
|
||||
fetchDashboardHtml()
|
||||
.then(({ html, cached }) => {
|
||||
res.writeHead(200, {
|
||||
'Content-Type': 'text/html; charset=utf-8',
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
'X-Cache': cached,
|
||||
'X-Cache': cached
|
||||
});
|
||||
res.end(html);
|
||||
})
|
||||
.catch((error) => {
|
||||
logServerError('api-dashboard', error);
|
||||
res.writeHead(502, {
|
||||
'Content-Type': 'text/plain; charset=utf-8',
|
||||
'Access-Control-Allow-Origin': '*',
|
||||
});
|
||||
res.writeHead(502, { 'Content-Type': 'text/plain; charset=utf-8' });
|
||||
res.end('DASHBOARD_FETCH_FAILED');
|
||||
});
|
||||
return;
|
||||
@@ -190,7 +237,7 @@ const server = http.createServer((req, res) => {
|
||||
}
|
||||
|
||||
// Serve static files from ROOT_DIR
|
||||
const filepath = path.join(ROOT_DIR, getRodaStaticPathname(pathname));
|
||||
const filepath = path.join(ROOT_DIR, pathname);
|
||||
const normalizedPath = path.normalize(filepath);
|
||||
|
||||
// Security check: ensure the requested file is within ROOT_DIR
|
||||
|
||||
+1
-3
@@ -5,9 +5,7 @@
|
||||
"type": "module",
|
||||
"description": "Student-safe static page assignment kit for Informatika UNTAN",
|
||||
"scripts": {
|
||||
"dev": "node scripts/dev.js",
|
||||
"dev:vite": "vite",
|
||||
"dev:roda": "node groups/RODA/server.js",
|
||||
"dev": "vite",
|
||||
"build": "vite build",
|
||||
"test:tapops": "node --test groups/Tapops/tests/*.test.mjs",
|
||||
"preview": "vite preview"
|
||||
|
||||
@@ -1,94 +0,0 @@
|
||||
import { spawn } from 'node:child_process';
|
||||
|
||||
export function createDevProcessSpecs({
|
||||
nodeCommand = process.execPath,
|
||||
env = process.env,
|
||||
} = {}) {
|
||||
return {
|
||||
roda: {
|
||||
command: nodeCommand,
|
||||
args: ['groups/RODA/server.js'],
|
||||
options: {
|
||||
env: {
|
||||
...env,
|
||||
HOST: env.RODA_HOST || '127.0.0.1',
|
||||
PORT: env.RODA_PORT || '3000',
|
||||
},
|
||||
stdio: ['ignore', 'ignore', 'pipe'],
|
||||
},
|
||||
},
|
||||
vite: {
|
||||
command: nodeCommand,
|
||||
args: ['node_modules/vite/bin/vite.js'],
|
||||
options: {
|
||||
env: { ...env },
|
||||
stdio: 'inherit',
|
||||
},
|
||||
},
|
||||
};
|
||||
}
|
||||
|
||||
export function startDevServers({
|
||||
spawnProcess = spawn,
|
||||
specs = createDevProcessSpecs(),
|
||||
} = {}) {
|
||||
const roda = spawnProcess(specs.roda.command, specs.roda.args, specs.roda.options);
|
||||
const vite = spawnProcess(specs.vite.command, specs.vite.args, specs.vite.options);
|
||||
let shuttingDown = false;
|
||||
let rodaErrorOutput = '';
|
||||
|
||||
roda.stderr?.on('data', (chunk) => {
|
||||
const message = String(chunk);
|
||||
rodaErrorOutput += message;
|
||||
if (!message.includes('EADDRINUSE')) {
|
||||
process.stderr.write(`[roda] ${message}`);
|
||||
}
|
||||
});
|
||||
|
||||
function stopChildren() {
|
||||
shuttingDown = true;
|
||||
if (!roda.killed) {
|
||||
roda.kill();
|
||||
}
|
||||
if (!vite.killed) {
|
||||
vite.kill();
|
||||
}
|
||||
}
|
||||
|
||||
vite.on('exit', (code, signal) => {
|
||||
shuttingDown = true;
|
||||
if (!roda.killed) {
|
||||
roda.kill();
|
||||
}
|
||||
|
||||
if (signal) {
|
||||
process.exitCode = 1;
|
||||
return;
|
||||
}
|
||||
|
||||
process.exitCode = code ?? 0;
|
||||
});
|
||||
|
||||
roda.on('exit', (code, signal) => {
|
||||
if (shuttingDown) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (rodaErrorOutput.includes('EADDRINUSE')) {
|
||||
process.stderr.write('[roda] Port 3000 is already in use; continuing with the existing RODA server.\n');
|
||||
return;
|
||||
}
|
||||
|
||||
const reason = signal ? `signal ${signal}` : `exit code ${code}`;
|
||||
process.stderr.write(`[roda] server stopped unexpectedly (${reason})\n`);
|
||||
if (!vite.killed) {
|
||||
vite.kill();
|
||||
}
|
||||
process.exitCode = code || 1;
|
||||
});
|
||||
|
||||
process.once('SIGINT', stopChildren);
|
||||
process.once('SIGTERM', stopChildren);
|
||||
|
||||
return { roda, vite };
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
import { startDevServers } from './dev-runner.js';
|
||||
|
||||
startDevServers();
|
||||
+11
-34
@@ -6,13 +6,6 @@ import { defineConfig } from 'vite';
|
||||
const root = path.dirname(fileURLToPath(import.meta.url));
|
||||
const excludedDirs = new Set(['.git', 'dist', 'node_modules']);
|
||||
const rodaDashboardUrl = 'https://dashboard.informatika.untan.ac.id/index.php?penelitian';
|
||||
const rodaDashboardCacheTtlMs = 5 * 60 * 1000;
|
||||
const dashboardRequestHeaders = {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36',
|
||||
};
|
||||
const rodaHost = process.env.RODA_HOST || '127.0.0.1';
|
||||
const rodaPort = process.env.RODA_PORT || '3000';
|
||||
const rodaTarget = `http://${rodaHost}:${rodaPort}`;
|
||||
|
||||
let rodaDashboardHtmlCache;
|
||||
|
||||
@@ -57,37 +50,33 @@ function copyStaticAssets() {
|
||||
};
|
||||
}
|
||||
|
||||
async function requestRodaDashboardHtml() {
|
||||
async function fetchRodaDashboardHtml() {
|
||||
if (rodaDashboardHtmlCache !== undefined) {
|
||||
return rodaDashboardHtmlCache;
|
||||
}
|
||||
|
||||
const controller = new AbortController();
|
||||
const timeoutId = setTimeout(() => controller.abort(), 12000);
|
||||
|
||||
try {
|
||||
const response = await fetch(rodaDashboardUrl, {
|
||||
signal: controller.signal,
|
||||
headers: dashboardRequestHeaders,
|
||||
headers: {
|
||||
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0 Safari/537.36',
|
||||
},
|
||||
});
|
||||
|
||||
if (!response.ok) {
|
||||
throw new Error(`HTTP ${response.status}`);
|
||||
}
|
||||
|
||||
return response.text();
|
||||
} finally {
|
||||
clearTimeout(timeoutId);
|
||||
}
|
||||
}
|
||||
|
||||
async function fetchRodaDashboardHtml() {
|
||||
if (rodaDashboardHtmlCache !== undefined) {
|
||||
return rodaDashboardHtmlCache;
|
||||
}
|
||||
|
||||
try {
|
||||
rodaDashboardHtmlCache = await requestRodaDashboardHtml();
|
||||
rodaDashboardHtmlCache = await response.text();
|
||||
} catch (error) {
|
||||
const message = error instanceof Error ? error.message : String(error);
|
||||
console.warn(`[roda-dashboard] Build-time dashboard fetch skipped: ${message}`);
|
||||
rodaDashboardHtmlCache = '';
|
||||
} finally {
|
||||
clearTimeout(timeoutId);
|
||||
}
|
||||
|
||||
return rodaDashboardHtmlCache;
|
||||
@@ -128,18 +117,6 @@ function embedRodaDashboardData() {
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [embedRodaDashboardData(), copyStaticAssets()],
|
||||
server: {
|
||||
proxy: {
|
||||
'/groups/RODA/api/dashboard': {
|
||||
target: rodaTarget,
|
||||
changeOrigin: true,
|
||||
},
|
||||
'/api/dashboard': {
|
||||
target: rodaTarget,
|
||||
changeOrigin: true,
|
||||
},
|
||||
},
|
||||
},
|
||||
build: {
|
||||
rollupOptions: {
|
||||
input: collectHtmlInputs(root),
|
||||
|
||||
Reference in New Issue
Block a user