Wikipedia acewiki https://ace.wikipedia.org/wiki/%C3%94n_Keue MediaWiki 1.47.0-wmf.3 first-letter Alat Kusuih Marit Ureuëng Ngui Marit Ureuëng Ngui Wikipedia Marit Wikipedia Beureukaih Marit Beureukaih MediaWiki Marit MediaWiki Seunaleuëk Marit Seunaleuëk Beunantu Marit Beunantu Kawan Marit Kawan TimedText TimedText talk Modul Pembicaraan Modul Acara Pembicaraan Acara MediaWiki:Gadgets-definition 8 5212 158134 158032 2026-05-24T13:42:32Z Rachmat04 7338 158134 wikitext text/x-wiki == browsing-gadgets == * GoogleTrans[ResourceLoader]|GoogleTrans.js * NavPopups[ResourceLoader]|NavPopups.js * ReferenceTooltips[ResourceLoader]|ReferenceTooltips.js|ReferenceTooltips.css == editing-gadgets == * HotCat[ResourceLoader]|HotCat.js * Twinkle[ResourceLoader|dependencies=mediawiki.util,jquery.ui,mediawiki.util]|morebits.js|morebits.css|Twinkle.js == interface-gadgets == * Purge[ResourceLoader|dependencies=mediawiki.util]|Purge.js * UTCLiveClock[ResourceLoader]|UTCLiveClock.js * HideFundraisingNotice|HideFundraisingNotice.css * ExtLinks[ResourceLoader]|ExtLinks.js * textareasansserif|textareasansserif.css * AdvancedSiteNotices[ResourceLoader]|AdvancedSiteNotices.js == toolbox == * Contributors[ResourceLoader|dependencies=mediawiki.util]|Contributors.js * Subpages[ResourceLoader|dependencies=mediawiki.util]|Subpages.js * MindMap[ResourceLoader|dependencies=mediawiki.util]|MindMap.js * ArticleTraffic[ResourceLoader|dependencies=mediawiki.util]|ArticleTraffic.js == admin-gadget == * DiscussionArchiverjs[ResourceLoader|dependencies=mediawiki.api,mediawiki.util,mediawiki.user|rights=block,protect]|DiscussionArchiver-core.js|DiscussionArchiver-acewiki.js b42ikflyy2v7yki3zje5dl8ktk6t0yr Kruep 0 31132 158135 147176 2026-05-25T11:36:54Z Si Gam 4266 158135 wikitext text/x-wiki {{Infobox spesies}} [[Beureukaih:A testudineus.jpg|thumb|300px|''Eungkôt Krueb'']] '''Eungkôt kruep''' (Latèn : ''Anabas testudineus'') nakeuh saboh jeunèh [[eungkôt]] [[Dapeuta eungkôt ie tabeue di Acèh|ië tabeuë]] nyang na di [[Acèh]]. Rupa eungkôt kruep nyan nakeuh wareuna sisékjih ijô sukla atawa nacit nyang ijô supak, panyangjih trôh 25 cm, udépjih lam [[paya]] atawa lam [[blang]]. Nan eungkôt kruep lam bahsa laén di [[Indonesia]] nakeuh ''běthok'' atawa ''běthik'' ([[Bahsa Jawa|Jw.]]); ''puyu'' ([[Bahsa Meulayu|Mly.]]); ''papuyu'' ([[bahsa Banjar|Bjn.]]); ''dumbaya'' ([[Bahsa Gorontalo|Gor.]]). [[Kawan:Eungkôt ie tabeue]] [[Kawan:Eungkôt]] m8ao0yv652h3df95fcz60qv51bkwm7v 158136 158135 2026-05-25T11:38:12Z Si Gam 4266 added [[Category:Anabantidae]] using [[Help:Gadget-HotCat|HotCat]] 158136 wikitext text/x-wiki {{Infobox spesies}} [[Beureukaih:A testudineus.jpg|thumb|300px|''Eungkôt Krueb'']] '''Eungkôt kruep''' (Latèn : ''Anabas testudineus'') nakeuh saboh jeunèh [[eungkôt]] [[Dapeuta eungkôt ie tabeue di Acèh|ië tabeuë]] nyang na di [[Acèh]]. Rupa eungkôt kruep nyan nakeuh wareuna sisékjih ijô sukla atawa nacit nyang ijô supak, panyangjih trôh 25 cm, udépjih lam [[paya]] atawa lam [[blang]]. Nan eungkôt kruep lam bahsa laén di [[Indonesia]] nakeuh ''běthok'' atawa ''běthik'' ([[Bahsa Jawa|Jw.]]); ''puyu'' ([[Bahsa Meulayu|Mly.]]); ''papuyu'' ([[bahsa Banjar|Bjn.]]); ''dumbaya'' ([[Bahsa Gorontalo|Gor.]]). [[Kawan:Eungkôt ie tabeue]] [[Kawan:Eungkôt]] [[Kawan:Anabantidae]] k0mp8qajl3gqsm762r9b2uzyib8cbkj Dapeuta eungkôt di Acèh meunurôt klasifikasi ilmiah 0 31214 158139 158129 2026-05-25T11:42:13Z Si Gam 4266 /* Ordo Anabantiformes */ 158139 wikitext text/x-wiki Dapeuta eungkôt di Acèh meunurôt klasifikasi ilmiah == Ordo Acanthuriformes == [[File:Acanthurus leucocheilus.jpg|jmpl|Eungkôt kawét]] === Famili Acanthuridae === * [[Kawét]] - ''Acanthurus tristis'' * [[Cabéh marang]] - ''Acanthurus xanthopterus'' === Famili Gerreidae === * [[Gapah (eungkôt)|Gapah]] - ''Gerres longirostris / Gerres macracanthus'' === Famili Haemulidae === * [[Pinang-pinang]] - ''Diagramma pictum'' * [[Eungkôt sugôt]] - ''Plectorhinchus lineatus'' * [[Seukirông bali]] - ''Plectorhinchus oriental'' * [[Teubai bibi]] - ''Plectrorhinchus chaetodontoides'' === Famili Nemipteridae / [[Eungkôt tulô]]<ref>{{Cite web |title=Jenis-jenis Ikan Hasil Tangkapan dengan Menggunakan Pukat Langga di TPI Pusong Baru, Lhok Seumawe |url=https://jurnal.usk.ac.id/JBE/article/download/415/585 |access-date=2025-07-03 |archive-date=2025-08-23 |archive-url=https://web.archive.org/web/20250823060157/https://jurnal.usk.ac.id/JBE/article/download/415/585 |dead-url=yes }}</ref> === [[File:Scolopsis bilineata Marinepia 1.jpg|jmpl|Eungkôt tulô kunèng]] * [[Eungkôt tulô mirah]] / ''Scolopsis xenouchrous'' * [[Eungkôt tulô kunèng]] / ''Scolopsis bilineatus'' * [[Eungkôt tulô putéh]] / ''Scolopsis ciliata'' * Nemipterus isacanthus === Famili Sciaenidae === * [[Gulama]] - ''Nibea soldado'' === Famili Siganidae / [[Cabéh]] === * [[Cabéh buleuen]] - ''Siganus canaliculatus'' * [[Cabéh èk manok]] - ''Siganus javus'' * ''Siganus guttatus'' === Famili Sillaginidae === * [[C'uet]] - ''Sillaginops macrolepis'' == Ordo Anabantiformes == [[File:Anabas testudineus 52464343.jpg|jmpl|Eungkôt kruep]] === Famili Anabantidae === * [[Krueb]] - ''Anabas testudineus'' === Famili Channidae === ==== Genus Channa ==== * [[Bacé]] - ''Channa striata'' * [[Bujôk]] - ''Channa lucius'' * [[Jampak]] - ''Channa cyanospilos'' ==== Genus Clarias ==== * [[Lélé Dumbô]] - ''Clarias gariepinus'' * [[Limbat]] - ''Clarias nieuhofii'' * [[Seungko]] - ''Clarias teijsmanni'' * [[Seumu]] - ''Clarias batrachus'' === Famili Osphronemidae === * [[Seupat]] - ''Trichogaster trichopterus'' * [[Seupat siam]] - ''Trichopodus pectoralis'' == Ordo Anguilliformes == === Famili Anguillidae === * [[Iléh]] - ''Anguilla marmorata'' * [[Kirè]] - ''Anguilla bicolor'' * [[Lijeue]] - ''Anguilla bengalensis'' === Famili Muraenidae === * [[Murè]] - ''Echidna rhodochilus'' == Ordo Beloniformes == === Famili Belonidae === * [[Eunggeuk-eunggeuk]] : ''Tylosurus pacificus'' === Famili Hemiramphidae === * [[Aneuk meusabah]] - Genus ''Hyporhamphus'' == Ordo Beryciformes == === Famili Holocentridae / [[Seurindang]] === * ''Myripristis berndti'' * ''Myripristis adusta'' * ''Sargocentron rubrum'' == Ordo Carangiformes == === Famili Carangidae === ==== Genus Caranx / [[Rambeue]] ==== * [[Mirah mata]] - ''Caranx sexfasciatus'' * [[Geureupôh]] - ''Caranx ignobilis'' * [[Kitok]] - ''Caranx heberi''<ref>[https://bioflux.com.ro/docs/2017.1180-1185.pdf Fish diversity in the east coastal waters area of Aceh Besar District, Indonesia]</ref> * [[Langguran]] - ''Caranx melampygus'' * [[Gabu]] - ''Caranx tille'' ==== Genus Trachinotus ==== * [[Nyoe-nyoe]] - ''Trachinotus botla'' * [[Nyoe-nyoe itam]] - ''Trachinotus bailloni)'' ==== Genus Megalaspis ==== * [[Turok]] - ''Megalaspis cordyla'' ==== Genus Scomberoides ==== * [[Taleueng]] - ''Scomberoides lysan'' === Famili Coryphaenidae === * [[Parang (eungkôt)|Parang]] - ''Coryphaena hippurus'' === Famili Istiophoridae === * [[Layaran]] -- Genus Istiophorus === Laén-laén === * [[Aneuk langkitok]] - ''Gnathanodon speciosus'' * [[Bawai itam]] - ''Parastromateus niger'' * [[Cumok]] - ''Elegatis bipunnulata'' * [[Sumboe]] - ''Selar crumenophthalmus'' * [[Selar]] - ''Selaroides leptolepis'' == Ordo Centrarchiformes == === Famili Terapontidae === * [[Kirông]] - ''Terapon jarbua'' == Ordo Carcharhiniformes / [[Yèe]] == === Famili Carcharhinidae === * [[Yèe beuton]] (''Carcharhinus leucas'') * [[Yèe brôh]] (''Carcharhinus longimanus'') * [[Yèe gapeueh]] (''Carcharhinus melanopterus'') * [[Yèe meurak bulu]] (''Carcharhinus obscurus'') * [[Yèe munjông]] (''Carcharinus altimus'') * [[Yèe napoleon]] (''Carcharhinus plumbeus'') * [[Yèe nawan]] (''Carcharinus falciformis'') * [[Yèe putéh]] (''Carcharinus sorrah'') * [[Yèe apông]] (''Prionace glauca'') * [[Yèe urot]] (''Loxodon macrorhinus'') * [[Yèe aweuek]] (''Triaenodon obesus'') === Famili Sphyrnidae === * [[Yèe plèngkong]] (''Sphyrna zigaena'') * [[Yèe rimba]] (''Sphyrna lewini'') === Famili Alopiidae === * [[Yèe tikôh]] (''Alopias'') === Famili Galeocerdonidae === * [[Yèe rimueng]] (''Galeocerdo cuvier'') === Famili Hemigaleidae === * [[Yèe kacang]] (''Hemigaleus microtoma'') * [[Yèe monas]] (''Hemipristis elongata'') === Famili Lamnidae === * [[Yèe mako]] (''Isurus paucus'') * [[Yèe tangiroe]] (''Isurus oxyrinchus'') === Famili Rhincodontidae === * [[Yèe bintang]]/tilam (''Rhincodon typus'') === Hemiscylliidae === * [[Yèe kantup]] / karang / batèe (''Chiloscyllium punctatum'') * [[Yèe gapeueh]] (''Hemigaleus microstoma'') === Famili laén === * [[Yèe anoe]] * [[Yèe bungong]] (''Cephaloscyllium variagatum'') * [[Yèe bubaji]] (''Rhynchobatus australiae'') * [[Yèe itam]] * [[Yèe minyeuk]] (''Squalus edmundsi'') * [[Yèe parang]] * [[Yèe pa'è]] (''Orectolobus leptolineatus'') * [[Yèe reudeuep]] == Ordo Clupeiformes == === Famili Clupeidae === * [[Reughak]] - ''Decapterus'' * [[Budueng]] - ''Sardinella fimbriata'' * [[Meunèng]] - ''Sardinella sirm'' * [[Tamban]] - ''Sardinella albella'' === Famili Ehiravidae === * [[Ciceuet]] - ''Corica soborna'' === Famili Engraulididae === * [[Biléh]] - ''Stelophorus indicus'' === Laén-laén === * [[Krimèn]] - ''Ambligaster sirm'' == Ordo Cypriniformes == === Famili Balitoridae === * [[Enggalu]] - ''Gastromyzon sp.'' * ''Nemacheilus pfeifferae'' === Famili Cyprinidae === ==== Genus Barbonymus ==== * [[Gapah]] - ''Barbonymus schwanenfeldii'' * [[Iet]] - ''Barbonymus gonionotus'' * [[Naléh]] - ''Barbonymus sp'' ==== Genus Cyclocheilichthys / [[Mirah mata (eungkôt krueng)|Mirah mata]] ==== * ''Cyclocheilichthys apogon'' * ''Cyclocheilichthys armatus'' ==== Genus Osteochilus ==== * [[Seurukan itam]] - ''Osteochilus hasseltii'' * [[Seurukan putéh]] - ''Osteochilus kahajenensis'' * [[Seurukan]] - ''Osteochilus kappenii'' * [[Seurukan mirah pruet]] - ''Osteochilus sp'' ==== Genus Poropuntius ==== * [[Kawan]] - ''Poropuntius tawarensis'' ==== Genus Puntius ==== * [[Kepras]] - ''Puntius binotatus'' * [[Gro]] - ''Puntius brevis'' * [[Gempual]] - ''Puntius lateristriga'' ==== Genus Rasbora ==== * [[Biléh krueng]] - ''Rasbora spilotaenia * Biléh krueng - ''Rasbora maculata'' * Biléh krueng - ''Rasbora lateristriga'' * Biléh krueng - ''Rasbora meinkeni'' * [[Relo]] - ''Rasbora sp.'' * [[Kedawah]] - ''Rasbora sumatrana'' * [[Depik]] - ''Rasbora tawarensis'' ==== Genus Tor / [[Keureulieng]] ==== * Tor tambra * Tor tambroides * Tor soro ==== Laén-laén ==== * ''Barbodes collingwoodii'' * [[Eungkôt meuh|Meuh]] - ''Cyprinus carpio'' (kön eungkôt aseuli Acèh) * ''Ctenopharyngodon idella'' (kön eungkôt aseuli Acèh) * [[Keubarè]] - ''Hampala macrolepidota'' * [[Cencen]] - ''Mystacoteucus marginatus'' * [[Keureulieng]] - ''Neolissochilus sp.'' == Ordo Cyprinidontiformes == === Famili Aplocheilidae === * [[Ulèe Timah]] - ''Aplocheilus panchax'' * [[Buntok]] - ''Xiphophorus helleri'' * [[Buntok Mirah]] - ''Xiphophorus maculatus'' === Famili Poeciliidae === * [[Seuribu]] - ''Poecillia sp'' === Famili Hemiramphidae === * [[Murung]] - ''Zenarchopterus rasori'' == Ordo Gobiiformes == === Famili Butidae === * [[Cung]] - ''Butis amboinensis'' === Famili Gobiidae === * [[Deut]] - ''Glossogobius giuris'' * [[Meuho]] - ''Acentrogobius cyanomos''<ref>[https://bioflux.com.ro/docs/2017.1180-1185.pdf Fish diversity in the east coastal waters area of Aceh Besar District, Indonesia]</ref> * [[Pagap]] - ''Acentrogobius janthinopterus'' * [[Turak]] - ''Glossogobius celebius'' == Ordo Gonorynchiformes == === Famili Chanidae === * [[Geumulôh]] : ''Chanos chanos'' == Ordo Istiophoriformes == === Famili Xiphiidae / [[Thôk]] === * [[Thôk kojek]] - ''Xiphias gladius'' == Ordo Labriformes == === Famili Scaridae / [[Bayeuen (eungkôt)|Bayeuen]] === * Scarus tricolor * Scarus quoyi * Scarus rubroviolaceus * Scarus niger * Calotomus carolinus == Ordo Lutjaniformes == === Famili Lutjanidae === ==== Genus Lutjanus ==== * [[Bambangan]] - ''Lutjanus sebae'' * [[Bateueng]] - ''Lutjanus argentimaculatus'' * [[Eungkôt tandôk]] - ''Lutjanus gibbus'' * [[Jamihöng]] - ''Lutjanus rivulatus'' * [[Jareueng gigoe]] - ''Lutjanus bohar'' * [[Jeunaha]] - ''Lutjanus fulviflamma'' * [[Kakap mirah]] - ''Lutjanus malabaricus'' * [[Reumong]] - ''Lutjanus bengalensis'' * [[Reumöng anoe]] / Tapak-tapak - ''Lutjanus lutjanus'' * [[Reumöng ceue]] - ''Lutjanus vitta'' * [[Reumöng tutông iku]] - ''Lutjanus lunulatus'' * [[Tanda-tanda]] - ''Lutjanus russelli'' ==== Genus Pristipomoides ==== * [[Keurisi panté]] - ''Pristipomoides typus'' * [[Tuih]] - ''Pristipomoides multidens'' ==== Laén-laén ==== * [[Eungkôt agam]] - ''Aprion virescens'' * [[Cangak]] - ''Aphareus rutilans'' * [[Sumpueng mirah]] - ''Pinjalo pinjalo'' * [[Eungkôt sumpueng]] - ''Paracaesio xanthura'' == Ordo Mugiliformes == === Famili Ambassidae === * [[Seuridéng]] krueng - Genus Ambassis === Famili Mugilidae === * [[Kadra]] - ''Liza macrolepis'' * [[Senangin]] - ''Mugil cephalus'' == Ordo Perciformes == === Famili Caesionidae === ==== Genus Caesio ==== * [[Pisang mirah]] * [[Pisang kunèng]] - ''Caesio xanthonota'' * [[Pisang kareueng]] ==== Genus Pterocaesio ==== * [[Pisang biru]] : ''Pterocaesio pisang'' * [[Pisang peureuléng mirah]] : ''Pterocaesio tile'' === Famili Gerreidae === * [[Kapas-kapas]] - ''Gerres erythrourus'' * [[Timon-timon]] - ''Gerres acinaces'' === Famili Kyphosidae === * [[Eungkôt arôn]] - ''Kyphosus cinerascens'' === Famili Labridae === * [[Bayam-bayam]] - ''Halichoeres hortulanus'' === Famili Leoignathidae / [[Ciriek]] === * [[Ciriek khak]] (''Leiognathus equulus'') * [[Ciriek buju]] (''Secutor megalolepsis'') * [[Ciriek gepeng]] (''Secutor indicius'') * [[Ciriek jantông]] (''Gazza minuta'') === Famili Menidae === * [[Pilok]] - ''Mene maculata'' === Famili Monodactylidae === * [[Eungkôt tapè]] - ''Monodactylus argenteus'' === Famili Pomacentridae === * [[Beulang]] - ''Abudefduf vaigiensis'' === Famili Serranidae / Geurapèe === ==== Genus Aethaloperca ==== * [[Geurapèe itam]] (''Aethaloperca rogaa'') ==== Genus Anyperodon ==== * [[Geurapèe bani panyang]] (''Anyperodon leucogrammicus'') ==== Genus Cephalopholis ==== * [[Geurapèe bani abèe]] (''Cephalopholis boenak'') * [[Geurapèe bani kuréng]] (''Cephalopholis formosa'') * [[Geurapèe brinchék itam]] (''Cephalopholis argus'') * [[Geurapèe brinchék mirah]] (''Cephalopholis sexmaculata'') * [[Geurapèe pandak]] (''Cephalopholis sonnerati'') ==== Genus Cromileptes ==== * [[Geurapèe tikôh]] (''Cromileptes altivelis'') ==== Genus Epinephelus ==== * [[Geurapèe aneuk geuruntông]] (''Epinephelus polyphekadion'') * [[Geurapèe bandi]] (''Epinephelus areolatus)'' * [[Geurapèe bungong kala]] (''Epinephelus fasciatus'') * [[Geurapèe coklat]] (''Epinephelus nigritus'') * [[Geurapèe karèt]] (''Epinephelus coeruleopunctatus'') * [[Geurapèe kh'èp]] (''Epinephelus microdon'') * [[Geurapèe kunyèt]] (''Epinephelus flavocaeruleus'') * [[Geurapèe kunèng]] (''Epinephelus coioides'') * [[Geurapèe lada]] (''Epinephelus longispinis'') * [[Geurapèe macan]] (''Epinephelus fuscoguttatus'') * [[Geurapèe musang]] (''Epinephelus merra'') * [[Geurapèe rimueng]] (''Epinephelus radiatus'') ==== Genus Plectropomus ==== * [[Janang mirah]] - ''Plectropomus leopardus'' ==== Genus Variola ==== * [[Geurapèe bandi itam rueng]] (''Variola louti'') * [[Geurapèe cabeueng]] (''Variola albimarginata'') === Famili Sphyraenidae === * [[Tangkulo]] - Genus Sphyraena === Famili Synanceiidae === * [[Leupôh]] - Genus Paracentopogon == Ordo Pleuronectiformes == === Famili Psettodidae === * [[Eungkôt siblah]] - Genus Psettodes == Ordo Priacanthiformes == === Famili Priacanthidae === * [[Brôk babah]] - ''Priacanthus macracanthus'' == Ordo Scombriformes == === Famili Scombridae === ==== Genus Auxis ==== * [[Surè keumong]] - ''Auxis thazard'' * [[Jeurubôk]] / surè panjoe - ''Auxis rochei'' ==== Genus Gymnosarda ==== * [[Muroe]] - ''Gymnosarda unicolor'' ==== Genus Thunnus ==== * [[Sisék]] - ''Thunnus alalunga'' * [[Sisék anoe]] / sisék jawa - ''Thunnus maccoyii'' * [[Surè raya mata]] / surè sisék - ''Thunnus obesus'' * [[Pa'ak]] / pukeue - ''Thunnus albacares'' * ''Thunnus tonggol'' ==== Genus Euthynnus ==== * [[Timphiek]] - ''Euthynnus affinis'' ==== Genus Katsuwonus ==== * [[Amè-amè]] - ''Katsuwonus pelamis'' ==== Genus Rastrelliger ==== * [[Jeunara]] - ''Rastrelliger kanagurta'' ==== Genus Scomberomorus ==== * [[Lamahan]] - ''Scomberomorus queenlandicus'' * [[Tangiroe]] - ''Scomberomorus commerson'' * [[Tangiroe bateueng]] - ''Scomberomorus commersoni'' * [[Tangiroe meuntroe]] - ''Scomberomorus lineolatus'' === Famili Trichiuridae === * [[Cualèe]] - ''Trichiurus savala'' == Ordo Scorpaeniformes == === Famili Platycephalidae === * [[Baji]] - ''Platycephalus indicus'' === Famili Scorpaenidae / [[Leupôh]] === * [[Leupôh manok]] - ''Pterois volitans'' * [[Leupôh ija brôk]] - ''Paraploactis sp'' == Ordo Siluriformes == === Famili Ariidae === * [[Bagok]] - ''Netuma thalassina'' === Famili Bagridae === * [[Sungiek]] - ''Mystus bimaculatus'' === Famili Plotosidae === * [[Seumilang]] - Plotosidae === Famili Siluridae === * [[Leupèk]] - ''Kryptopterus minor''<ref>[https://www.researchgate.net/publication/375874804_Status_Ekonomi_dan_Konservasi_Ikan_Air_Tawar_di_Sungai_Meureubo_Kabupaten_Aceh_Barat Status Ekonomi dan Konservasi Ikan Air Tawar di Sungai Meureubo, Kabupaten Aceh Barat]</ref> === Famili Sisoridae === * [[Trop]] - ''Glyptothorax platypogoniodes'' / ''Glyptothorax major'' == Ordo Spariformes == === Famili Lethrinidae === * [[Bruchum]] - ''Lethrinus microdon'' * [[Bruchum padé]] - ''Lethrinus miniatus'' == Ordo Synbranchiformes == === Famili Synbranchidae === * [[Linong]] - ''Monopterus albus'' == Ordo Syngnathiformes == === Famili Mullidae === * [[Gantheuep]] - ''Parupeneus heptacanthus'' * [[Gantheuep kunèng]] - ''Parupeneus cyclostomus'' * [[Gantheuep mirah]] - ''Parupeneus bifasciatus'' * [[Gantheuep sisék kunèng]] - ''Parupeneus chrysopleuron'' * ''Mulloidichthys vanicolensis'' * ''Upeneus moluccensis'' === Famili Syngnathidae === * [[Eungkôt tumbak]] - ''Doryichthys heterosoma'' == Ordo Tetraodontiformes == === Famili Balistidae === * [[Leubiem itam]] * [[Leubiem putéh]] * [[Leubiem kunèng]] * [[Leubiem manok]] * [[Leubiem bintang]] * ''Melichtys indicus'' === Famili Tetraodontidae === * [[Bukuem]] - ''Chelonodontops patoca'' == Eu cit == * [[Dapeuta eungkôt laôt di Acèh]] * [[Dapeuta eungkôt ie tabeue di Acèh]] == Asai seunurat == * {{citebook|author= Mauriza Apriansyah|title=Inventarisasi Jenis Ikan Hasil Tangkapan Nelayan yang Didaratkan di Pulau Weh|URL=https://repository.ar-raniry.ac.id/id/eprint/19618/1/Mauriza%20Apriansyah%2C%20160703073%2C%20FST%2C%20BIOLOGI%2C%20081262865989.pdf|page=39|year=2021}} == Referensi == {{reflist}} [[Kawan:Eungkôt]] tqmd2u5vu8kes2v5ti1gzcwc4qsk8fw 158140 158139 2026-05-25T11:45:15Z Si Gam 4266 /* Ordo Anabantiformes */ 158140 wikitext text/x-wiki Dapeuta eungkôt di Acèh meunurôt klasifikasi ilmiah == Ordo Acanthuriformes == [[File:Acanthurus leucocheilus.jpg|jmpl|Eungkôt kawét]] === Famili Acanthuridae === * [[Kawét]] - ''Acanthurus tristis'' * [[Cabéh marang]] - ''Acanthurus xanthopterus'' === Famili Gerreidae === * [[Gapah (eungkôt)|Gapah]] - ''Gerres longirostris / Gerres macracanthus'' === Famili Haemulidae === * [[Pinang-pinang]] - ''Diagramma pictum'' * [[Eungkôt sugôt]] - ''Plectorhinchus lineatus'' * [[Seukirông bali]] - ''Plectorhinchus oriental'' * [[Teubai bibi]] - ''Plectrorhinchus chaetodontoides'' === Famili Nemipteridae / [[Eungkôt tulô]]<ref>{{Cite web |title=Jenis-jenis Ikan Hasil Tangkapan dengan Menggunakan Pukat Langga di TPI Pusong Baru, Lhok Seumawe |url=https://jurnal.usk.ac.id/JBE/article/download/415/585 |access-date=2025-07-03 |archive-date=2025-08-23 |archive-url=https://web.archive.org/web/20250823060157/https://jurnal.usk.ac.id/JBE/article/download/415/585 |dead-url=yes }}</ref> === [[File:Scolopsis bilineata Marinepia 1.jpg|jmpl|Eungkôt tulô kunèng]] * [[Eungkôt tulô mirah]] / ''Scolopsis xenouchrous'' * [[Eungkôt tulô kunèng]] / ''Scolopsis bilineatus'' * [[Eungkôt tulô putéh]] / ''Scolopsis ciliata'' * Nemipterus isacanthus === Famili Sciaenidae === * [[Gulama]] - ''Nibea soldado'' === Famili Siganidae / [[Cabéh]] === * [[Cabéh buleuen]] - ''Siganus canaliculatus'' * [[Cabéh èk manok]] - ''Siganus javus'' * ''Siganus guttatus'' === Famili Sillaginidae === * [[C'uet]] - ''Sillaginops macrolepis'' == Ordo Anabantiformes == [[File:Anabas testudineus 52464343.jpg|jmpl|Eungkôt kruep]] === Famili Anabantidae === * [[Krueb]] - ''Anabas testudineus'' === Famili Channidae === ==== Genus Channa ==== * [[Bacé]] - ''Channa striata'' * [[Bujôk]] - ''Channa lucius'' * [[Jampak]] - ''Channa cyanospilos'' [[File:Channa lucius Gifu.jpg|jmpl|Eungkôt bujôk]] ==== Genus Clarias ==== * [[Lélé Dumbô]] - ''Clarias gariepinus'' * [[Limbat]] - ''Clarias nieuhofii'' * [[Seungko]] - ''Clarias teijsmanni'' * [[Seumu]] - ''Clarias batrachus'' === Famili Osphronemidae === * [[Seupat]] - ''Trichogaster trichopterus'' * [[Seupat siam]] - ''Trichopodus pectoralis'' == Ordo Anguilliformes == === Famili Anguillidae === * [[Iléh]] - ''Anguilla marmorata'' * [[Kirè]] - ''Anguilla bicolor'' * [[Lijeue]] - ''Anguilla bengalensis'' === Famili Muraenidae === * [[Murè]] - ''Echidna rhodochilus'' == Ordo Beloniformes == === Famili Belonidae === * [[Eunggeuk-eunggeuk]] : ''Tylosurus pacificus'' === Famili Hemiramphidae === * [[Aneuk meusabah]] - Genus ''Hyporhamphus'' == Ordo Beryciformes == === Famili Holocentridae / [[Seurindang]] === * ''Myripristis berndti'' * ''Myripristis adusta'' * ''Sargocentron rubrum'' == Ordo Carangiformes == === Famili Carangidae === ==== Genus Caranx / [[Rambeue]] ==== * [[Mirah mata]] - ''Caranx sexfasciatus'' * [[Geureupôh]] - ''Caranx ignobilis'' * [[Kitok]] - ''Caranx heberi''<ref>[https://bioflux.com.ro/docs/2017.1180-1185.pdf Fish diversity in the east coastal waters area of Aceh Besar District, Indonesia]</ref> * [[Langguran]] - ''Caranx melampygus'' * [[Gabu]] - ''Caranx tille'' ==== Genus Trachinotus ==== * [[Nyoe-nyoe]] - ''Trachinotus botla'' * [[Nyoe-nyoe itam]] - ''Trachinotus bailloni)'' ==== Genus Megalaspis ==== * [[Turok]] - ''Megalaspis cordyla'' ==== Genus Scomberoides ==== * [[Taleueng]] - ''Scomberoides lysan'' === Famili Coryphaenidae === * [[Parang (eungkôt)|Parang]] - ''Coryphaena hippurus'' === Famili Istiophoridae === * [[Layaran]] -- Genus Istiophorus === Laén-laén === * [[Aneuk langkitok]] - ''Gnathanodon speciosus'' * [[Bawai itam]] - ''Parastromateus niger'' * [[Cumok]] - ''Elegatis bipunnulata'' * [[Sumboe]] - ''Selar crumenophthalmus'' * [[Selar]] - ''Selaroides leptolepis'' == Ordo Centrarchiformes == === Famili Terapontidae === * [[Kirông]] - ''Terapon jarbua'' == Ordo Carcharhiniformes / [[Yèe]] == === Famili Carcharhinidae === * [[Yèe beuton]] (''Carcharhinus leucas'') * [[Yèe brôh]] (''Carcharhinus longimanus'') * [[Yèe gapeueh]] (''Carcharhinus melanopterus'') * [[Yèe meurak bulu]] (''Carcharhinus obscurus'') * [[Yèe munjông]] (''Carcharinus altimus'') * [[Yèe napoleon]] (''Carcharhinus plumbeus'') * [[Yèe nawan]] (''Carcharinus falciformis'') * [[Yèe putéh]] (''Carcharinus sorrah'') * [[Yèe apông]] (''Prionace glauca'') * [[Yèe urot]] (''Loxodon macrorhinus'') * [[Yèe aweuek]] (''Triaenodon obesus'') === Famili Sphyrnidae === * [[Yèe plèngkong]] (''Sphyrna zigaena'') * [[Yèe rimba]] (''Sphyrna lewini'') === Famili Alopiidae === * [[Yèe tikôh]] (''Alopias'') === Famili Galeocerdonidae === * [[Yèe rimueng]] (''Galeocerdo cuvier'') === Famili Hemigaleidae === * [[Yèe kacang]] (''Hemigaleus microtoma'') * [[Yèe monas]] (''Hemipristis elongata'') === Famili Lamnidae === * [[Yèe mako]] (''Isurus paucus'') * [[Yèe tangiroe]] (''Isurus oxyrinchus'') === Famili Rhincodontidae === * [[Yèe bintang]]/tilam (''Rhincodon typus'') === Hemiscylliidae === * [[Yèe kantup]] / karang / batèe (''Chiloscyllium punctatum'') * [[Yèe gapeueh]] (''Hemigaleus microstoma'') === Famili laén === * [[Yèe anoe]] * [[Yèe bungong]] (''Cephaloscyllium variagatum'') * [[Yèe bubaji]] (''Rhynchobatus australiae'') * [[Yèe itam]] * [[Yèe minyeuk]] (''Squalus edmundsi'') * [[Yèe parang]] * [[Yèe pa'è]] (''Orectolobus leptolineatus'') * [[Yèe reudeuep]] == Ordo Clupeiformes == === Famili Clupeidae === * [[Reughak]] - ''Decapterus'' * [[Budueng]] - ''Sardinella fimbriata'' * [[Meunèng]] - ''Sardinella sirm'' * [[Tamban]] - ''Sardinella albella'' === Famili Ehiravidae === * [[Ciceuet]] - ''Corica soborna'' === Famili Engraulididae === * [[Biléh]] - ''Stelophorus indicus'' === Laén-laén === * [[Krimèn]] - ''Ambligaster sirm'' == Ordo Cypriniformes == === Famili Balitoridae === * [[Enggalu]] - ''Gastromyzon sp.'' * ''Nemacheilus pfeifferae'' === Famili Cyprinidae === ==== Genus Barbonymus ==== * [[Gapah]] - ''Barbonymus schwanenfeldii'' * [[Iet]] - ''Barbonymus gonionotus'' * [[Naléh]] - ''Barbonymus sp'' ==== Genus Cyclocheilichthys / [[Mirah mata (eungkôt krueng)|Mirah mata]] ==== * ''Cyclocheilichthys apogon'' * ''Cyclocheilichthys armatus'' ==== Genus Osteochilus ==== * [[Seurukan itam]] - ''Osteochilus hasseltii'' * [[Seurukan putéh]] - ''Osteochilus kahajenensis'' * [[Seurukan]] - ''Osteochilus kappenii'' * [[Seurukan mirah pruet]] - ''Osteochilus sp'' ==== Genus Poropuntius ==== * [[Kawan]] - ''Poropuntius tawarensis'' ==== Genus Puntius ==== * [[Kepras]] - ''Puntius binotatus'' * [[Gro]] - ''Puntius brevis'' * [[Gempual]] - ''Puntius lateristriga'' ==== Genus Rasbora ==== * [[Biléh krueng]] - ''Rasbora spilotaenia * Biléh krueng - ''Rasbora maculata'' * Biléh krueng - ''Rasbora lateristriga'' * Biléh krueng - ''Rasbora meinkeni'' * [[Relo]] - ''Rasbora sp.'' * [[Kedawah]] - ''Rasbora sumatrana'' * [[Depik]] - ''Rasbora tawarensis'' ==== Genus Tor / [[Keureulieng]] ==== * Tor tambra * Tor tambroides * Tor soro ==== Laén-laén ==== * ''Barbodes collingwoodii'' * [[Eungkôt meuh|Meuh]] - ''Cyprinus carpio'' (kön eungkôt aseuli Acèh) * ''Ctenopharyngodon idella'' (kön eungkôt aseuli Acèh) * [[Keubarè]] - ''Hampala macrolepidota'' * [[Cencen]] - ''Mystacoteucus marginatus'' * [[Keureulieng]] - ''Neolissochilus sp.'' == Ordo Cyprinidontiformes == === Famili Aplocheilidae === * [[Ulèe Timah]] - ''Aplocheilus panchax'' * [[Buntok]] - ''Xiphophorus helleri'' * [[Buntok Mirah]] - ''Xiphophorus maculatus'' === Famili Poeciliidae === * [[Seuribu]] - ''Poecillia sp'' === Famili Hemiramphidae === * [[Murung]] - ''Zenarchopterus rasori'' == Ordo Gobiiformes == === Famili Butidae === * [[Cung]] - ''Butis amboinensis'' === Famili Gobiidae === * [[Deut]] - ''Glossogobius giuris'' * [[Meuho]] - ''Acentrogobius cyanomos''<ref>[https://bioflux.com.ro/docs/2017.1180-1185.pdf Fish diversity in the east coastal waters area of Aceh Besar District, Indonesia]</ref> * [[Pagap]] - ''Acentrogobius janthinopterus'' * [[Turak]] - ''Glossogobius celebius'' == Ordo Gonorynchiformes == === Famili Chanidae === * [[Geumulôh]] : ''Chanos chanos'' == Ordo Istiophoriformes == === Famili Xiphiidae / [[Thôk]] === * [[Thôk kojek]] - ''Xiphias gladius'' == Ordo Labriformes == === Famili Scaridae / [[Bayeuen (eungkôt)|Bayeuen]] === * Scarus tricolor * Scarus quoyi * Scarus rubroviolaceus * Scarus niger * Calotomus carolinus == Ordo Lutjaniformes == === Famili Lutjanidae === ==== Genus Lutjanus ==== * [[Bambangan]] - ''Lutjanus sebae'' * [[Bateueng]] - ''Lutjanus argentimaculatus'' * [[Eungkôt tandôk]] - ''Lutjanus gibbus'' * [[Jamihöng]] - ''Lutjanus rivulatus'' * [[Jareueng gigoe]] - ''Lutjanus bohar'' * [[Jeunaha]] - ''Lutjanus fulviflamma'' * [[Kakap mirah]] - ''Lutjanus malabaricus'' * [[Reumong]] - ''Lutjanus bengalensis'' * [[Reumöng anoe]] / Tapak-tapak - ''Lutjanus lutjanus'' * [[Reumöng ceue]] - ''Lutjanus vitta'' * [[Reumöng tutông iku]] - ''Lutjanus lunulatus'' * [[Tanda-tanda]] - ''Lutjanus russelli'' ==== Genus Pristipomoides ==== * [[Keurisi panté]] - ''Pristipomoides typus'' * [[Tuih]] - ''Pristipomoides multidens'' ==== Laén-laén ==== * [[Eungkôt agam]] - ''Aprion virescens'' * [[Cangak]] - ''Aphareus rutilans'' * [[Sumpueng mirah]] - ''Pinjalo pinjalo'' * [[Eungkôt sumpueng]] - ''Paracaesio xanthura'' == Ordo Mugiliformes == === Famili Ambassidae === * [[Seuridéng]] krueng - Genus Ambassis === Famili Mugilidae === * [[Kadra]] - ''Liza macrolepis'' * [[Senangin]] - ''Mugil cephalus'' == Ordo Perciformes == === Famili Caesionidae === ==== Genus Caesio ==== * [[Pisang mirah]] * [[Pisang kunèng]] - ''Caesio xanthonota'' * [[Pisang kareueng]] ==== Genus Pterocaesio ==== * [[Pisang biru]] : ''Pterocaesio pisang'' * [[Pisang peureuléng mirah]] : ''Pterocaesio tile'' === Famili Gerreidae === * [[Kapas-kapas]] - ''Gerres erythrourus'' * [[Timon-timon]] - ''Gerres acinaces'' === Famili Kyphosidae === * [[Eungkôt arôn]] - ''Kyphosus cinerascens'' === Famili Labridae === * [[Bayam-bayam]] - ''Halichoeres hortulanus'' === Famili Leoignathidae / [[Ciriek]] === * [[Ciriek khak]] (''Leiognathus equulus'') * [[Ciriek buju]] (''Secutor megalolepsis'') * [[Ciriek gepeng]] (''Secutor indicius'') * [[Ciriek jantông]] (''Gazza minuta'') === Famili Menidae === * [[Pilok]] - ''Mene maculata'' === Famili Monodactylidae === * [[Eungkôt tapè]] - ''Monodactylus argenteus'' === Famili Pomacentridae === * [[Beulang]] - ''Abudefduf vaigiensis'' === Famili Serranidae / Geurapèe === ==== Genus Aethaloperca ==== * [[Geurapèe itam]] (''Aethaloperca rogaa'') ==== Genus Anyperodon ==== * [[Geurapèe bani panyang]] (''Anyperodon leucogrammicus'') ==== Genus Cephalopholis ==== * [[Geurapèe bani abèe]] (''Cephalopholis boenak'') * [[Geurapèe bani kuréng]] (''Cephalopholis formosa'') * [[Geurapèe brinchék itam]] (''Cephalopholis argus'') * [[Geurapèe brinchék mirah]] (''Cephalopholis sexmaculata'') * [[Geurapèe pandak]] (''Cephalopholis sonnerati'') ==== Genus Cromileptes ==== * [[Geurapèe tikôh]] (''Cromileptes altivelis'') ==== Genus Epinephelus ==== * [[Geurapèe aneuk geuruntông]] (''Epinephelus polyphekadion'') * [[Geurapèe bandi]] (''Epinephelus areolatus)'' * [[Geurapèe bungong kala]] (''Epinephelus fasciatus'') * [[Geurapèe coklat]] (''Epinephelus nigritus'') * [[Geurapèe karèt]] (''Epinephelus coeruleopunctatus'') * [[Geurapèe kh'èp]] (''Epinephelus microdon'') * [[Geurapèe kunyèt]] (''Epinephelus flavocaeruleus'') * [[Geurapèe kunèng]] (''Epinephelus coioides'') * [[Geurapèe lada]] (''Epinephelus longispinis'') * [[Geurapèe macan]] (''Epinephelus fuscoguttatus'') * [[Geurapèe musang]] (''Epinephelus merra'') * [[Geurapèe rimueng]] (''Epinephelus radiatus'') ==== Genus Plectropomus ==== * [[Janang mirah]] - ''Plectropomus leopardus'' ==== Genus Variola ==== * [[Geurapèe bandi itam rueng]] (''Variola louti'') * [[Geurapèe cabeueng]] (''Variola albimarginata'') === Famili Sphyraenidae === * [[Tangkulo]] - Genus Sphyraena === Famili Synanceiidae === * [[Leupôh]] - Genus Paracentopogon == Ordo Pleuronectiformes == === Famili Psettodidae === * [[Eungkôt siblah]] - Genus Psettodes == Ordo Priacanthiformes == === Famili Priacanthidae === * [[Brôk babah]] - ''Priacanthus macracanthus'' == Ordo Scombriformes == === Famili Scombridae === ==== Genus Auxis ==== * [[Surè keumong]] - ''Auxis thazard'' * [[Jeurubôk]] / surè panjoe - ''Auxis rochei'' ==== Genus Gymnosarda ==== * [[Muroe]] - ''Gymnosarda unicolor'' ==== Genus Thunnus ==== * [[Sisék]] - ''Thunnus alalunga'' * [[Sisék anoe]] / sisék jawa - ''Thunnus maccoyii'' * [[Surè raya mata]] / surè sisék - ''Thunnus obesus'' * [[Pa'ak]] / pukeue - ''Thunnus albacares'' * ''Thunnus tonggol'' ==== Genus Euthynnus ==== * [[Timphiek]] - ''Euthynnus affinis'' ==== Genus Katsuwonus ==== * [[Amè-amè]] - ''Katsuwonus pelamis'' ==== Genus Rastrelliger ==== * [[Jeunara]] - ''Rastrelliger kanagurta'' ==== Genus Scomberomorus ==== * [[Lamahan]] - ''Scomberomorus queenlandicus'' * [[Tangiroe]] - ''Scomberomorus commerson'' * [[Tangiroe bateueng]] - ''Scomberomorus commersoni'' * [[Tangiroe meuntroe]] - ''Scomberomorus lineolatus'' === Famili Trichiuridae === * [[Cualèe]] - ''Trichiurus savala'' == Ordo Scorpaeniformes == === Famili Platycephalidae === * [[Baji]] - ''Platycephalus indicus'' === Famili Scorpaenidae / [[Leupôh]] === * [[Leupôh manok]] - ''Pterois volitans'' * [[Leupôh ija brôk]] - ''Paraploactis sp'' == Ordo Siluriformes == === Famili Ariidae === * [[Bagok]] - ''Netuma thalassina'' === Famili Bagridae === * [[Sungiek]] - ''Mystus bimaculatus'' === Famili Plotosidae === * [[Seumilang]] - Plotosidae === Famili Siluridae === * [[Leupèk]] - ''Kryptopterus minor''<ref>[https://www.researchgate.net/publication/375874804_Status_Ekonomi_dan_Konservasi_Ikan_Air_Tawar_di_Sungai_Meureubo_Kabupaten_Aceh_Barat Status Ekonomi dan Konservasi Ikan Air Tawar di Sungai Meureubo, Kabupaten Aceh Barat]</ref> === Famili Sisoridae === * [[Trop]] - ''Glyptothorax platypogoniodes'' / ''Glyptothorax major'' == Ordo Spariformes == === Famili Lethrinidae === * [[Bruchum]] - ''Lethrinus microdon'' * [[Bruchum padé]] - ''Lethrinus miniatus'' == Ordo Synbranchiformes == === Famili Synbranchidae === * [[Linong]] - ''Monopterus albus'' == Ordo Syngnathiformes == === Famili Mullidae === * [[Gantheuep]] - ''Parupeneus heptacanthus'' * [[Gantheuep kunèng]] - ''Parupeneus cyclostomus'' * [[Gantheuep mirah]] - ''Parupeneus bifasciatus'' * [[Gantheuep sisék kunèng]] - ''Parupeneus chrysopleuron'' * ''Mulloidichthys vanicolensis'' * ''Upeneus moluccensis'' === Famili Syngnathidae === * [[Eungkôt tumbak]] - ''Doryichthys heterosoma'' == Ordo Tetraodontiformes == === Famili Balistidae === * [[Leubiem itam]] * [[Leubiem putéh]] * [[Leubiem kunèng]] * [[Leubiem manok]] * [[Leubiem bintang]] * ''Melichtys indicus'' === Famili Tetraodontidae === * [[Bukuem]] - ''Chelonodontops patoca'' == Eu cit == * [[Dapeuta eungkôt laôt di Acèh]] * [[Dapeuta eungkôt ie tabeue di Acèh]] == Asai seunurat == * {{citebook|author= Mauriza Apriansyah|title=Inventarisasi Jenis Ikan Hasil Tangkapan Nelayan yang Didaratkan di Pulau Weh|URL=https://repository.ar-raniry.ac.id/id/eprint/19618/1/Mauriza%20Apriansyah%2C%20160703073%2C%20FST%2C%20BIOLOGI%2C%20081262865989.pdf|page=39|year=2021}} == Referensi == {{reflist}} [[Kawan:Eungkôt]] 2xsgwpd33p66qdmbwghkho5zt5a5q22 158141 158140 2026-05-25T11:49:38Z Si Gam 4266 /* Ordo Anguilliformes */ 158141 wikitext text/x-wiki Dapeuta eungkôt di Acèh meunurôt klasifikasi ilmiah == Ordo Acanthuriformes == [[File:Acanthurus leucocheilus.jpg|jmpl|Eungkôt kawét]] === Famili Acanthuridae === * [[Kawét]] - ''Acanthurus tristis'' * [[Cabéh marang]] - ''Acanthurus xanthopterus'' === Famili Gerreidae === * [[Gapah (eungkôt)|Gapah]] - ''Gerres longirostris / Gerres macracanthus'' === Famili Haemulidae === * [[Pinang-pinang]] - ''Diagramma pictum'' * [[Eungkôt sugôt]] - ''Plectorhinchus lineatus'' * [[Seukirông bali]] - ''Plectorhinchus oriental'' * [[Teubai bibi]] - ''Plectrorhinchus chaetodontoides'' === Famili Nemipteridae / [[Eungkôt tulô]]<ref>{{Cite web |title=Jenis-jenis Ikan Hasil Tangkapan dengan Menggunakan Pukat Langga di TPI Pusong Baru, Lhok Seumawe |url=https://jurnal.usk.ac.id/JBE/article/download/415/585 |access-date=2025-07-03 |archive-date=2025-08-23 |archive-url=https://web.archive.org/web/20250823060157/https://jurnal.usk.ac.id/JBE/article/download/415/585 |dead-url=yes }}</ref> === [[File:Scolopsis bilineata Marinepia 1.jpg|jmpl|Eungkôt tulô kunèng]] * [[Eungkôt tulô mirah]] / ''Scolopsis xenouchrous'' * [[Eungkôt tulô kunèng]] / ''Scolopsis bilineatus'' * [[Eungkôt tulô putéh]] / ''Scolopsis ciliata'' * Nemipterus isacanthus === Famili Sciaenidae === * [[Gulama]] - ''Nibea soldado'' === Famili Siganidae / [[Cabéh]] === * [[Cabéh buleuen]] - ''Siganus canaliculatus'' * [[Cabéh èk manok]] - ''Siganus javus'' * ''Siganus guttatus'' === Famili Sillaginidae === * [[C'uet]] - ''Sillaginops macrolepis'' == Ordo Anabantiformes == [[File:Anabas testudineus 52464343.jpg|jmpl|Eungkôt kruep]] === Famili Anabantidae === * [[Krueb]] - ''Anabas testudineus'' === Famili Channidae === ==== Genus Channa ==== * [[Bacé]] - ''Channa striata'' * [[Bujôk]] - ''Channa lucius'' * [[Jampak]] - ''Channa cyanospilos'' [[File:Channa lucius Gifu.jpg|jmpl|Eungkôt bujôk]] ==== Genus Clarias ==== * [[Lélé Dumbô]] - ''Clarias gariepinus'' * [[Limbat]] - ''Clarias nieuhofii'' * [[Seungko]] - ''Clarias teijsmanni'' * [[Seumu]] - ''Clarias batrachus'' === Famili Osphronemidae === * [[Seupat]] - ''Trichogaster trichopterus'' * [[Seupat siam]] - ''Trichopodus pectoralis'' == Ordo Anguilliformes == [[File:Oounagi070224.jpg|jmpl|Iléh]] === Famili Anguillidae === * [[Iléh]] - ''Anguilla marmorata'' * [[Kirè]] - ''Anguilla bicolor'' * [[Lijeue]] - ''Anguilla bengalensis'' === Famili Muraenidae === * [[Murè]] - ''Echidna rhodochilus'' == Ordo Beloniformes == === Famili Belonidae === * [[Eunggeuk-eunggeuk]] : ''Tylosurus pacificus'' === Famili Hemiramphidae === * [[Aneuk meusabah]] - Genus ''Hyporhamphus'' == Ordo Beryciformes == === Famili Holocentridae / [[Seurindang]] === * ''Myripristis berndti'' * ''Myripristis adusta'' * ''Sargocentron rubrum'' == Ordo Carangiformes == === Famili Carangidae === ==== Genus Caranx / [[Rambeue]] ==== * [[Mirah mata]] - ''Caranx sexfasciatus'' * [[Geureupôh]] - ''Caranx ignobilis'' * [[Kitok]] - ''Caranx heberi''<ref>[https://bioflux.com.ro/docs/2017.1180-1185.pdf Fish diversity in the east coastal waters area of Aceh Besar District, Indonesia]</ref> * [[Langguran]] - ''Caranx melampygus'' * [[Gabu]] - ''Caranx tille'' ==== Genus Trachinotus ==== * [[Nyoe-nyoe]] - ''Trachinotus botla'' * [[Nyoe-nyoe itam]] - ''Trachinotus bailloni)'' ==== Genus Megalaspis ==== * [[Turok]] - ''Megalaspis cordyla'' ==== Genus Scomberoides ==== * [[Taleueng]] - ''Scomberoides lysan'' === Famili Coryphaenidae === * [[Parang (eungkôt)|Parang]] - ''Coryphaena hippurus'' === Famili Istiophoridae === * [[Layaran]] -- Genus Istiophorus === Laén-laén === * [[Aneuk langkitok]] - ''Gnathanodon speciosus'' * [[Bawai itam]] - ''Parastromateus niger'' * [[Cumok]] - ''Elegatis bipunnulata'' * [[Sumboe]] - ''Selar crumenophthalmus'' * [[Selar]] - ''Selaroides leptolepis'' == Ordo Centrarchiformes == === Famili Terapontidae === * [[Kirông]] - ''Terapon jarbua'' == Ordo Carcharhiniformes / [[Yèe]] == === Famili Carcharhinidae === * [[Yèe beuton]] (''Carcharhinus leucas'') * [[Yèe brôh]] (''Carcharhinus longimanus'') * [[Yèe gapeueh]] (''Carcharhinus melanopterus'') * [[Yèe meurak bulu]] (''Carcharhinus obscurus'') * [[Yèe munjông]] (''Carcharinus altimus'') * [[Yèe napoleon]] (''Carcharhinus plumbeus'') * [[Yèe nawan]] (''Carcharinus falciformis'') * [[Yèe putéh]] (''Carcharinus sorrah'') * [[Yèe apông]] (''Prionace glauca'') * [[Yèe urot]] (''Loxodon macrorhinus'') * [[Yèe aweuek]] (''Triaenodon obesus'') === Famili Sphyrnidae === * [[Yèe plèngkong]] (''Sphyrna zigaena'') * [[Yèe rimba]] (''Sphyrna lewini'') === Famili Alopiidae === * [[Yèe tikôh]] (''Alopias'') === Famili Galeocerdonidae === * [[Yèe rimueng]] (''Galeocerdo cuvier'') === Famili Hemigaleidae === * [[Yèe kacang]] (''Hemigaleus microtoma'') * [[Yèe monas]] (''Hemipristis elongata'') === Famili Lamnidae === * [[Yèe mako]] (''Isurus paucus'') * [[Yèe tangiroe]] (''Isurus oxyrinchus'') === Famili Rhincodontidae === * [[Yèe bintang]]/tilam (''Rhincodon typus'') === Hemiscylliidae === * [[Yèe kantup]] / karang / batèe (''Chiloscyllium punctatum'') * [[Yèe gapeueh]] (''Hemigaleus microstoma'') === Famili laén === * [[Yèe anoe]] * [[Yèe bungong]] (''Cephaloscyllium variagatum'') * [[Yèe bubaji]] (''Rhynchobatus australiae'') * [[Yèe itam]] * [[Yèe minyeuk]] (''Squalus edmundsi'') * [[Yèe parang]] * [[Yèe pa'è]] (''Orectolobus leptolineatus'') * [[Yèe reudeuep]] == Ordo Clupeiformes == === Famili Clupeidae === * [[Reughak]] - ''Decapterus'' * [[Budueng]] - ''Sardinella fimbriata'' * [[Meunèng]] - ''Sardinella sirm'' * [[Tamban]] - ''Sardinella albella'' === Famili Ehiravidae === * [[Ciceuet]] - ''Corica soborna'' === Famili Engraulididae === * [[Biléh]] - ''Stelophorus indicus'' === Laén-laén === * [[Krimèn]] - ''Ambligaster sirm'' == Ordo Cypriniformes == === Famili Balitoridae === * [[Enggalu]] - ''Gastromyzon sp.'' * ''Nemacheilus pfeifferae'' === Famili Cyprinidae === ==== Genus Barbonymus ==== * [[Gapah]] - ''Barbonymus schwanenfeldii'' * [[Iet]] - ''Barbonymus gonionotus'' * [[Naléh]] - ''Barbonymus sp'' ==== Genus Cyclocheilichthys / [[Mirah mata (eungkôt krueng)|Mirah mata]] ==== * ''Cyclocheilichthys apogon'' * ''Cyclocheilichthys armatus'' ==== Genus Osteochilus ==== * [[Seurukan itam]] - ''Osteochilus hasseltii'' * [[Seurukan putéh]] - ''Osteochilus kahajenensis'' * [[Seurukan]] - ''Osteochilus kappenii'' * [[Seurukan mirah pruet]] - ''Osteochilus sp'' ==== Genus Poropuntius ==== * [[Kawan]] - ''Poropuntius tawarensis'' ==== Genus Puntius ==== * [[Kepras]] - ''Puntius binotatus'' * [[Gro]] - ''Puntius brevis'' * [[Gempual]] - ''Puntius lateristriga'' ==== Genus Rasbora ==== * [[Biléh krueng]] - ''Rasbora spilotaenia * Biléh krueng - ''Rasbora maculata'' * Biléh krueng - ''Rasbora lateristriga'' * Biléh krueng - ''Rasbora meinkeni'' * [[Relo]] - ''Rasbora sp.'' * [[Kedawah]] - ''Rasbora sumatrana'' * [[Depik]] - ''Rasbora tawarensis'' ==== Genus Tor / [[Keureulieng]] ==== * Tor tambra * Tor tambroides * Tor soro ==== Laén-laén ==== * ''Barbodes collingwoodii'' * [[Eungkôt meuh|Meuh]] - ''Cyprinus carpio'' (kön eungkôt aseuli Acèh) * ''Ctenopharyngodon idella'' (kön eungkôt aseuli Acèh) * [[Keubarè]] - ''Hampala macrolepidota'' * [[Cencen]] - ''Mystacoteucus marginatus'' * [[Keureulieng]] - ''Neolissochilus sp.'' == Ordo Cyprinidontiformes == === Famili Aplocheilidae === * [[Ulèe Timah]] - ''Aplocheilus panchax'' * [[Buntok]] - ''Xiphophorus helleri'' * [[Buntok Mirah]] - ''Xiphophorus maculatus'' === Famili Poeciliidae === * [[Seuribu]] - ''Poecillia sp'' === Famili Hemiramphidae === * [[Murung]] - ''Zenarchopterus rasori'' == Ordo Gobiiformes == === Famili Butidae === * [[Cung]] - ''Butis amboinensis'' === Famili Gobiidae === * [[Deut]] - ''Glossogobius giuris'' * [[Meuho]] - ''Acentrogobius cyanomos''<ref>[https://bioflux.com.ro/docs/2017.1180-1185.pdf Fish diversity in the east coastal waters area of Aceh Besar District, Indonesia]</ref> * [[Pagap]] - ''Acentrogobius janthinopterus'' * [[Turak]] - ''Glossogobius celebius'' == Ordo Gonorynchiformes == === Famili Chanidae === * [[Geumulôh]] : ''Chanos chanos'' == Ordo Istiophoriformes == === Famili Xiphiidae / [[Thôk]] === * [[Thôk kojek]] - ''Xiphias gladius'' == Ordo Labriformes == === Famili Scaridae / [[Bayeuen (eungkôt)|Bayeuen]] === * Scarus tricolor * Scarus quoyi * Scarus rubroviolaceus * Scarus niger * Calotomus carolinus == Ordo Lutjaniformes == === Famili Lutjanidae === ==== Genus Lutjanus ==== * [[Bambangan]] - ''Lutjanus sebae'' * [[Bateueng]] - ''Lutjanus argentimaculatus'' * [[Eungkôt tandôk]] - ''Lutjanus gibbus'' * [[Jamihöng]] - ''Lutjanus rivulatus'' * [[Jareueng gigoe]] - ''Lutjanus bohar'' * [[Jeunaha]] - ''Lutjanus fulviflamma'' * [[Kakap mirah]] - ''Lutjanus malabaricus'' * [[Reumong]] - ''Lutjanus bengalensis'' * [[Reumöng anoe]] / Tapak-tapak - ''Lutjanus lutjanus'' * [[Reumöng ceue]] - ''Lutjanus vitta'' * [[Reumöng tutông iku]] - ''Lutjanus lunulatus'' * [[Tanda-tanda]] - ''Lutjanus russelli'' ==== Genus Pristipomoides ==== * [[Keurisi panté]] - ''Pristipomoides typus'' * [[Tuih]] - ''Pristipomoides multidens'' ==== Laén-laén ==== * [[Eungkôt agam]] - ''Aprion virescens'' * [[Cangak]] - ''Aphareus rutilans'' * [[Sumpueng mirah]] - ''Pinjalo pinjalo'' * [[Eungkôt sumpueng]] - ''Paracaesio xanthura'' == Ordo Mugiliformes == === Famili Ambassidae === * [[Seuridéng]] krueng - Genus Ambassis === Famili Mugilidae === * [[Kadra]] - ''Liza macrolepis'' * [[Senangin]] - ''Mugil cephalus'' == Ordo Perciformes == === Famili Caesionidae === ==== Genus Caesio ==== * [[Pisang mirah]] * [[Pisang kunèng]] - ''Caesio xanthonota'' * [[Pisang kareueng]] ==== Genus Pterocaesio ==== * [[Pisang biru]] : ''Pterocaesio pisang'' * [[Pisang peureuléng mirah]] : ''Pterocaesio tile'' === Famili Gerreidae === * [[Kapas-kapas]] - ''Gerres erythrourus'' * [[Timon-timon]] - ''Gerres acinaces'' === Famili Kyphosidae === * [[Eungkôt arôn]] - ''Kyphosus cinerascens'' === Famili Labridae === * [[Bayam-bayam]] - ''Halichoeres hortulanus'' === Famili Leoignathidae / [[Ciriek]] === * [[Ciriek khak]] (''Leiognathus equulus'') * [[Ciriek buju]] (''Secutor megalolepsis'') * [[Ciriek gepeng]] (''Secutor indicius'') * [[Ciriek jantông]] (''Gazza minuta'') === Famili Menidae === * [[Pilok]] - ''Mene maculata'' === Famili Monodactylidae === * [[Eungkôt tapè]] - ''Monodactylus argenteus'' === Famili Pomacentridae === * [[Beulang]] - ''Abudefduf vaigiensis'' === Famili Serranidae / Geurapèe === ==== Genus Aethaloperca ==== * [[Geurapèe itam]] (''Aethaloperca rogaa'') ==== Genus Anyperodon ==== * [[Geurapèe bani panyang]] (''Anyperodon leucogrammicus'') ==== Genus Cephalopholis ==== * [[Geurapèe bani abèe]] (''Cephalopholis boenak'') * [[Geurapèe bani kuréng]] (''Cephalopholis formosa'') * [[Geurapèe brinchék itam]] (''Cephalopholis argus'') * [[Geurapèe brinchék mirah]] (''Cephalopholis sexmaculata'') * [[Geurapèe pandak]] (''Cephalopholis sonnerati'') ==== Genus Cromileptes ==== * [[Geurapèe tikôh]] (''Cromileptes altivelis'') ==== Genus Epinephelus ==== * [[Geurapèe aneuk geuruntông]] (''Epinephelus polyphekadion'') * [[Geurapèe bandi]] (''Epinephelus areolatus)'' * [[Geurapèe bungong kala]] (''Epinephelus fasciatus'') * [[Geurapèe coklat]] (''Epinephelus nigritus'') * [[Geurapèe karèt]] (''Epinephelus coeruleopunctatus'') * [[Geurapèe kh'èp]] (''Epinephelus microdon'') * [[Geurapèe kunyèt]] (''Epinephelus flavocaeruleus'') * [[Geurapèe kunèng]] (''Epinephelus coioides'') * [[Geurapèe lada]] (''Epinephelus longispinis'') * [[Geurapèe macan]] (''Epinephelus fuscoguttatus'') * [[Geurapèe musang]] (''Epinephelus merra'') * [[Geurapèe rimueng]] (''Epinephelus radiatus'') ==== Genus Plectropomus ==== * [[Janang mirah]] - ''Plectropomus leopardus'' ==== Genus Variola ==== * [[Geurapèe bandi itam rueng]] (''Variola louti'') * [[Geurapèe cabeueng]] (''Variola albimarginata'') === Famili Sphyraenidae === * [[Tangkulo]] - Genus Sphyraena === Famili Synanceiidae === * [[Leupôh]] - Genus Paracentopogon == Ordo Pleuronectiformes == === Famili Psettodidae === * [[Eungkôt siblah]] - Genus Psettodes == Ordo Priacanthiformes == === Famili Priacanthidae === * [[Brôk babah]] - ''Priacanthus macracanthus'' == Ordo Scombriformes == === Famili Scombridae === ==== Genus Auxis ==== * [[Surè keumong]] - ''Auxis thazard'' * [[Jeurubôk]] / surè panjoe - ''Auxis rochei'' ==== Genus Gymnosarda ==== * [[Muroe]] - ''Gymnosarda unicolor'' ==== Genus Thunnus ==== * [[Sisék]] - ''Thunnus alalunga'' * [[Sisék anoe]] / sisék jawa - ''Thunnus maccoyii'' * [[Surè raya mata]] / surè sisék - ''Thunnus obesus'' * [[Pa'ak]] / pukeue - ''Thunnus albacares'' * ''Thunnus tonggol'' ==== Genus Euthynnus ==== * [[Timphiek]] - ''Euthynnus affinis'' ==== Genus Katsuwonus ==== * [[Amè-amè]] - ''Katsuwonus pelamis'' ==== Genus Rastrelliger ==== * [[Jeunara]] - ''Rastrelliger kanagurta'' ==== Genus Scomberomorus ==== * [[Lamahan]] - ''Scomberomorus queenlandicus'' * [[Tangiroe]] - ''Scomberomorus commerson'' * [[Tangiroe bateueng]] - ''Scomberomorus commersoni'' * [[Tangiroe meuntroe]] - ''Scomberomorus lineolatus'' === Famili Trichiuridae === * [[Cualèe]] - ''Trichiurus savala'' == Ordo Scorpaeniformes == === Famili Platycephalidae === * [[Baji]] - ''Platycephalus indicus'' === Famili Scorpaenidae / [[Leupôh]] === * [[Leupôh manok]] - ''Pterois volitans'' * [[Leupôh ija brôk]] - ''Paraploactis sp'' == Ordo Siluriformes == === Famili Ariidae === * [[Bagok]] - ''Netuma thalassina'' === Famili Bagridae === * [[Sungiek]] - ''Mystus bimaculatus'' === Famili Plotosidae === * [[Seumilang]] - Plotosidae === Famili Siluridae === * [[Leupèk]] - ''Kryptopterus minor''<ref>[https://www.researchgate.net/publication/375874804_Status_Ekonomi_dan_Konservasi_Ikan_Air_Tawar_di_Sungai_Meureubo_Kabupaten_Aceh_Barat Status Ekonomi dan Konservasi Ikan Air Tawar di Sungai Meureubo, Kabupaten Aceh Barat]</ref> === Famili Sisoridae === * [[Trop]] - ''Glyptothorax platypogoniodes'' / ''Glyptothorax major'' == Ordo Spariformes == === Famili Lethrinidae === * [[Bruchum]] - ''Lethrinus microdon'' * [[Bruchum padé]] - ''Lethrinus miniatus'' == Ordo Synbranchiformes == === Famili Synbranchidae === * [[Linong]] - ''Monopterus albus'' == Ordo Syngnathiformes == === Famili Mullidae === * [[Gantheuep]] - ''Parupeneus heptacanthus'' * [[Gantheuep kunèng]] - ''Parupeneus cyclostomus'' * [[Gantheuep mirah]] - ''Parupeneus bifasciatus'' * [[Gantheuep sisék kunèng]] - ''Parupeneus chrysopleuron'' * ''Mulloidichthys vanicolensis'' * ''Upeneus moluccensis'' === Famili Syngnathidae === * [[Eungkôt tumbak]] - ''Doryichthys heterosoma'' == Ordo Tetraodontiformes == === Famili Balistidae === * [[Leubiem itam]] * [[Leubiem putéh]] * [[Leubiem kunèng]] * [[Leubiem manok]] * [[Leubiem bintang]] * ''Melichtys indicus'' === Famili Tetraodontidae === * [[Bukuem]] - ''Chelonodontops patoca'' == Eu cit == * [[Dapeuta eungkôt laôt di Acèh]] * [[Dapeuta eungkôt ie tabeue di Acèh]] == Asai seunurat == * {{citebook|author= Mauriza Apriansyah|title=Inventarisasi Jenis Ikan Hasil Tangkapan Nelayan yang Didaratkan di Pulau Weh|URL=https://repository.ar-raniry.ac.id/id/eprint/19618/1/Mauriza%20Apriansyah%2C%20160703073%2C%20FST%2C%20BIOLOGI%2C%20081262865989.pdf|page=39|year=2021}} == Referensi == {{reflist}} [[Kawan:Eungkôt]] 00s3mm3o2rh819tkp4erngbsywch5cz MediaWiki:Gadget-DiscussionArchiver-acewiki.js 8 33662 158132 158115 2026-05-24T13:41:35Z Rachmat04 7338 Rachmat04 geupinah laman [[MediaWiki:Gadget-DiscussionArchiver.js]] u [[MediaWiki:Gadget-DiscussionArchiver-acewiki.js]] 158115 javascript text/javascript /** * [DISCUSSIONARCHIVER.JS — GADGET PENGARSIP DISKUSI — WIKIPEDIA ACEH] * * •==============================================• * > Tipe: JavaScript (MediaWiki Gadget) * > Target: Halaman spesifik: Wikipedia:Meusapat * > Fungsi: Mengarsipkan utas diskusi yang komentar * terakhirnya sudah >= 2 bulan dari sekarang * atau utas yang memiliki templat {{section resolved}} / {{Section resolved}} * > Hak: Hanya sysop * > Halaman arsip ditentukan berdasarkan tahun timestamp * terbaru utas (bukan tahun saat tombol ditekan). * •==============================================• */ // <nowiki> (function () { const cfg = mw.config.get(); const api = new mw.Api(); const page = cfg.wgPageName; // contoh: "Wikipedia:Meusapat" const groups = cfg.wgUserGroups || []; const isSysop = groups.includes('sysop'); // Hanya aktif untuk sysop if (!isSysop) return; // Hanya aktif di halaman persis "Wikipedia:Meusapat" const pageReadable = page.replace(/_/g, ' '); if (pageReadable !== 'Wikipedia:Meusapat') return; // Jangan jalankan di halaman diff, history, atau jika bukan revisi saat ini if ( cfg.wgAction === 'history' || cfg.wgDiffNewId || cfg.wgDiffOldId || cfg.wgCurRevisionId !== cfg.wgRevisionId ) return; // ── CSS ────────────────────────────────────────────────────────────── mw.util.addCSS(` /* ── Variabel warna: light mode (default) ── */ .da-overlay, .da-dialog, .da-dialog * { --da-bg: #ffffff; --da-bg-subtle: #f8f9fa; --da-bg-hover: #f0f2f4; --da-border: #a2a9b1; --da-border-subtle: #eaecf0; --da-text: #202122; --da-text-subtle: #54595d; --da-text-muted: #72777d; --da-link: #3366cc; --da-badge-bg: #fee7e6; --da-badge-text: #b32424; } @media (prefers-color-scheme: dark) { .da-overlay, .da-dialog, .da-dialog * { --da-bg: #1e1e1e; --da-bg-subtle: #2a2a2a; --da-bg-hover: #333333; --da-border: #54595d; --da-border-subtle: #3a3a3a; --da-text: #eaecf0; --da-text-subtle: #a2a9b1; --da-text-muted: #72777d; --da-link: #6699ff; --da-badge-bg: #4a1a1a; --da-badge-text: #ff8080; } } .da-overlay { position: fixed; inset: 0; background: rgba(0,0,0,0.50); z-index: 100000; display: flex; align-items: center; justify-content: center; padding: 12px; animation: da-fadein .15s ease-out; } .da-dialog { background: var(--da-bg); color: var(--da-text); border: 1px solid var(--da-border); border-radius: 8px; width: min(680px, 96%); max-height: 88vh; overflow: auto; box-shadow: 0 8px 24px rgba(0,0,0,0.40); font-family: system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial; animation: da-slidein .15s ease-out; } .da-dialog-header { padding: 12px 16px; border-bottom: 1px solid var(--da-border-subtle); background: var(--da-bg-subtle); color: var(--da-text); font-weight: bold; font-size: 1.05em; display: flex; align-items: center; gap: 8px; } .da-dialog-body { padding: 14px 16px; font-size: 0.95em; color: var(--da-text); } .da-dialog-footer { padding: 10px 16px; border-top: 1px solid var(--da-border-subtle); background: var(--da-bg-subtle); text-align: right; } .da-dialog-footer button { margin-left: 6px; } .da-thread-list { list-style: none; margin: 10px 0; padding: 0; max-height: 340px; overflow-y: auto; border: 1px solid var(--da-border-subtle); border-radius: 4px; } .da-thread-item { display: flex; align-items: flex-start; gap: 10px; padding: 9px 12px; border-bottom: 1px solid var(--da-border-subtle); cursor: pointer; transition: background .1s; } .da-thread-item:last-child { border-bottom: none; } .da-thread-item:hover { background: var(--da-bg-hover); } .da-thread-item input[type=checkbox] { margin-top: 3px; flex-shrink: 0; cursor: pointer; } .da-thread-title { font-weight: 600; font-size: 0.92em; color: var(--da-text); } .da-thread-meta { font-size: 0.82em; color: var(--da-text-muted); margin-top: 2px; } .da-badge { display: inline-block; background: var(--da-badge-bg); color: var(--da-badge-text); border-radius: 3px; padding: 1px 6px; font-size: 0.78em; font-weight: 700; margin-left: 6px; vertical-align: middle; } .da-confirm-box { background: var(--da-bg-subtle); border: 1px solid var(--da-border-subtle); border-radius: 6px; padding: 10px 14px; margin-bottom: 10px; } .da-confirm-box strong { display: block; margin-bottom: 4px; color: var(--da-text); } .da-confirm-meta { font-size: 0.85em; color: var(--da-text-subtle); margin: 4px 0 8px; } .da-archive-target { font-size: 0.88em; color: var(--da-link); word-break: break-all; } .da-progress { font-size: 0.9em; color: var(--da-text-subtle); margin-top: 8px; min-height: 1.4em; } .da-empty { text-align: center; padding: 28px 0; color: var(--da-text-muted); font-size: 0.93em; } .da-select-all-row { display: flex; align-items: center; gap: 8px; padding: 7px 12px; background: var(--da-bg-subtle); border-bottom: 1px solid var(--da-border-subtle); font-size: 0.88em; color: var(--da-text-subtle); } @keyframes da-fadein { from { opacity: 0; } to { opacity: 1; } } @keyframes da-slidein { from { opacity: 0; transform: translateY(-8px); } to { opacity: 1; transform: translateY(0); } } #da-float-btn { position: fixed; bottom: 130px; right: 25px; background: #36c; color: #fff; border: none; padding: 8px 13px; border-radius: 5px; cursor: pointer; z-index: 99999; font-weight: bold; font-size: 0.93em; box-shadow: 0 2px 8px rgba(0,0,0,0.22); transition: background .15s; } #da-float-btn:hover { background: #2a55a8; } `); // ── Nama bulan bahasa Aceh ──────────────────────────────────────────── const BULAN_ACEH = { 'Buleuen Sa': 0, 'Buleuen Duwa': 1, 'Buleuen Lhèe': 2, 'Buleuen Peuet': 3, 'Buleuen Limöng': 4, 'Buleuen Nam': 5, 'Buleuen Tujôh': 6, 'Buleuen Lapan': 7, 'Buleuen Sikureueng': 8, 'Buleuen Siplôh': 9, 'Buleuen Siblaih': 10, 'Buleuen Duwa Blah': 11 }; // Array nama bulan (urut) untuk formatting const BULAN_ACEH_ARR = Object.keys(BULAN_ACEH); /** * Deteksi apakah sebuah utas mengandung templat {{section resolved}} atau {{Section resolved}} * dengan parameter apapun. Mencakup variasi whitespace dan multiline. */ function hasSectionResolvedTemplate(text) { if (!text) return false; const re = /\{\{\s*[Ss]ection\s+resolved\b[\s\S]*?\}\}/; return re.test(text); } /** * Mengambil timestamp terbaru dari sebuah blok teks wikitext. * Format yang dideteksi: "12 Buleuen Sa 2024 12.34 (WIB)" * Catatan: tanda tangan di halaman kemungkinan menuliskan waktu dalam WIB (UTC+7). * Untuk menyimpan perbandingan waktu, kita konversi ke UTC dengan mengurangi 7 jam. */ function getLatestTimestamp(text) { const pattern = /(\d{1,2})\s+(Buleuen Sa|Buleuen Duwa|Buleuen Lhèe|Buleuen Peuet|Buleuen Limöng|Buleuen Nam|Buleuen Tujôh|Buleuen Lapan|Buleuen Sikureueng|Buleuen Siplôh|Buleuen Siblaih|Buleuen Duwa Blah)\s+(\d{4})\s+(?:pukul\s+)?(\d{1,2})[.:](\d{2})\s+\(WIB\)/g; let latest = null; let m; while ((m = pattern.exec(text)) !== null) { const day = parseInt(m[1], 10); const monthIndex = BULAN_ACEH[m[2]]; const year = parseInt(m[3], 10); const hourWIB = parseInt(m[4], 10); const minute = parseInt(m[5], 10); // Konversi WIB (UTC+7) ke UTC dengan mengurangi 7 jam const hourUTC = hourWIB - 7; const d = new Date(Date.UTC(year, monthIndex, day, hourUTC, minute)); if (!latest || d > latest) latest = d; } return latest; } /** * Format tanggal ke string Aceh (mengembalikan waktu dalam WIB). * Menerima Date yang direpresentasikan dalam UTC; kita tambahkan offset +7 jam untuk menampilkan WIB. */ function formatTanggalAceh(d) { if (!d) return ''; const dWIB = new Date(d.getTime() + 7 * 60 * 60 * 1000); const day = String(dWIB.getUTCDate()).padStart(2, '0'); const monthName = BULAN_ACEH_ARR[dWIB.getUTCMonth()]; const year = dWIB.getUTCFullYear(); return `${day} ${monthName} ${year} (WIB)`; } function selisihBulan(dari, ke) { return (ke.getFullYear() - dari.getFullYear()) * 12 + (ke.getMonth() - dari.getMonth()); } /** * Menentukan judul halaman arsip untuk sebuah utas. * Menggunakan tahun dari timestamp terbaru utas tersebut. * Jika tidak ada timestamp terdeteksi (misal hanya {{section resolved}}), * fallback ke tahun saat ini. */ function getArchiveTitleForThread(thread) { const baseTitle = page.replace(/_/g, ' '); const ts = getLatestTimestamp(thread.content); const year = ts ? ts.getUTCFullYear() : new Date().getFullYear(); return `${baseTitle}/Keuneubah ${year}`; } function notify(msg, type = 'info') { mw.notify ? mw.notify(msg, { type }) : console.log('[DiscussionArchiver:Aceh]', msg); } // ── Dialog ──────────────────────────────────────────────────────────── function createDialog(titleHtml, bodyHtml) { const overlay = document.createElement('div'); overlay.className = 'da-overlay'; const dialog = document.createElement('div'); dialog.className = 'da-dialog'; dialog.innerHTML = ` <div class="da-dialog-header">📦 ${titleHtml}</div> <div class="da-dialog-body">${bodyHtml}</div> <div class="da-dialog-footer"></div> `; overlay.appendChild(dialog); overlay.addEventListener('click', e => { if (e.target === overlay) overlay.remove(); }); document.body.appendChild(overlay); return { overlay, dialog, body: dialog.querySelector('.da-dialog-body'), footer: dialog.querySelector('.da-dialog-footer') }; } function addBtn(footer, label, cls, onClick) { const btn = document.createElement('button'); btn.className = `mw-ui-button ${cls}`; btn.textContent = label; btn.addEventListener('click', onClick); footer.appendChild(btn); return btn; } // ── Parsing utas level-2 ─────────────────────────────────────────────── function parseThreads(wikitext) { const headerRe = /^==\s*([^=\n][^\n]*?)\s*==\s*$/gm; const positions = []; let m; while ((m = headerRe.exec(wikitext)) !== null) { positions.push({ title: m[1].trim(), start: m.index }); } positions.push({ title: null, start: wikitext.length }); const threads = []; for (let i = 0; i < positions.length - 1; i++) { const start = positions[i].start; const end = positions[i + 1].start; threads.push({ title: positions[i].title, content: wikitext.substring(start, end), start, end }); } return threads; } // ── Konfirmasi per utas ──────────────────────────────────────────────── // archiveTitle dihitung per utas di dalam fungsi ini (tidak lagi diterima sebagai parameter) function confirmPerThread(threads) { return new Promise(resolve => { const approved = []; let idx = 0; function showNext() { if (idx >= threads.length) { resolve(approved); return; } const t = threads[idx]; const ts = getLatestTimestamp(t.content); const resolved = hasSectionResolvedTemplate(t.content); const usia = ts ? selisihBulan(ts, new Date()) : (resolved ? 'resolved' : '?'); const tsTxt = ts ? formatTanggalAceh(ts) : (resolved ? 'Terdeteksi: {{section resolved}}' : 'Tidak terdeteksi'); const tgtTitle = getArchiveTitleForThread(t); // per utas, bukan global const { overlay, footer } = createDialog( `Konfirmasi Arsip Utas (${idx + 1}/${threads.length})`, `<div class="da-confirm-box"> <strong>📄 ${mw.html.escape(t.title)}</strong> <div class="da-confirm-meta"> Komentar terakhir: <b>${tsTxt}</b> <span class="da-badge">~${usia} bulan lalu</span> </div> <div class="da-archive-target">→ Akan diarsipkan ke: <b>${mw.html.escape(tgtTitle)}</b></div> </div> <p style="font-size:0.92em;color:var(--da-text-subtle);margin:6px 0 0"> Lewati untuk melewati utas ini tanpa mengarsipkan. </p>` ); addBtn(footer, 'Lewati', 'mw-ui-quiet', () => { overlay.remove(); idx++; showNext(); }); addBtn(footer, 'Arsipkan', 'mw-ui-progressive', () => { approved.push(t); overlay.remove(); idx++; showNext(); }); } showNext(); }); } // ── Proses pengarsipan ───────────────────────────────────────────────── // Tiap utas dikelompokkan berdasarkan archiveTitle-nya masing-masing, // lalu tiap kelompok disimpan ke halaman arsip yang sesuai. async function doArchive(threadsToArchive) { // Ambil ulang wikitext terbaru (hindari konflik edit) const res = await api.get({ action: 'query', prop: 'revisions', rvprop: ['content', 'timestamp'], titles: page, formatversion: 2 }); const pageData = res.query.pages[0]; let text = pageData.revisions[0].content; const baseTimestamp = pageData.revisions[0].timestamp; // Hapus setiap utas dari teks asal (cocokkan berdasarkan konten) for (const t of threadsToArchive) { const escaped = t.content.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); const re = new RegExp(escaped); text = text.replace(re, ''); } text = text.replace(/\n{3,}/g, '\n\n').trim(); // Kelompokkan utas berdasarkan halaman arsip tujuan masing-masing const groupMap = new Map(); // archiveTitle → [thread, ...] for (const t of threadsToArchive) { const tgt = getArchiveTitleForThread(t); if (!groupMap.has(tgt)) groupMap.set(tgt, []); groupMap.get(tgt).push(t); } const sourceTitle = page.replace(/_/g, ' '); // Simpan halaman asal (sekali saja, semua utas sudah dihapus) await api.postWithToken('csrf', { action: 'edit', title: page, text, summary: `Mengarsipkan ${threadsToArchive.length} utas tidak aktif`, basetimestamp: baseTimestamp }); // Simpan tiap halaman arsip sesuai kelompoknya for (const [archiveTitle, threads] of groupMap.entries()) { const arsRes = await api.get({ action: 'query', prop: 'revisions', rvprop: 'content', titles: archiveTitle, formatversion: 2 }); const arsPage = arsRes.query.pages[0]; let arsText = (arsPage.revisions && arsPage.revisions[0].content) || ''; if (!arsPage.revisions) { arsText = `{{Arsip|${sourceTitle}}}\n__ARCHIVEDTALK__\n__NOINDEX__\n`; } const newBlocks = threads.map(t => t.content.trim()).join('\n\n'); arsText = `${arsText.trim()}\n\n${newBlocks}\n`; await api.postWithToken('csrf', { action: 'edit', title: archiveTitle, text: arsText.trim(), summary: `Menambahkan ${threads.length} utas diarsipkan dari [[${sourceTitle}]]` }); } } // ── Alur utama ──────────────────────────────────────────────────────── async function runArchiver() { // 1. Ambil wikitext halaman let data; try { data = await api.get({ action: 'query', prop: 'revisions', rvprop: 'content', titles: page, formatversion: 2 }); } catch (e) { notify('⚠️ Gagal memuat isi halaman.', 'error'); return; } const wikitext = (data.query.pages[0] && data.query.pages[0].revisions && data.query.pages[0].revisions[0] && data.query.pages[0].revisions[0].content) || ''; if (!wikitext) { notify('⚠️ Halaman kosong atau gagal dimuat.', 'warn'); return; } // 2. Parse utas level-2 const allThreads = parseThreads(wikitext); if (!allThreads.length) { notify('ℹ️ Tidak ditemukan utas level-2 di halaman ini.', 'info'); return; } // 3. Filter utas yang komentar terakhirnya >= 2 bulan OR memiliki {{section resolved}} const now = new Date(); const staleThreads = allThreads.filter(t => { const ts = getLatestTimestamp(t.content); const resolved = hasSectionResolvedTemplate(t.content); if (resolved) return true; if (!ts) return false; return selisihBulan(ts, now) >= 2; }); if (!staleThreads.length) { const { overlay, footer } = createDialog( 'Pengarsip Diskusi — Tidak Ada Utas Kedaluwarsa', `<div class="da-empty"> ✅ Semua utas masih aktif (komentar terakhir &lt; 2 bulan) dan tidak ada templat {{section resolved}}.<br> Tidak ada yang perlu diarsipkan saat ini. </div>` ); addBtn(footer, 'Tutup', 'mw-ui-quiet', () => overlay.remove()); return; } // 4. Tentukan nama dasar halaman (archiveTitle dihitung per utas via getArchiveTitleForThread) const baseTitle = page.replace(/_/g, ' '); // "Wikipedia:Meusapat" // 5. Tampilkan ringkasan dulu sebelum konfirmasi per utas // Setiap baris menampilkan halaman arsip tujuan masing-masing utas const proceed = await new Promise(resolve => { const listItems = staleThreads.map(t => { const ts = getLatestTimestamp(t.content); const resolved = hasSectionResolvedTemplate(t.content); const usia = ts ? selisihBulan(ts, now) : (resolved ? 'resolved' : '?'); const tsTxt = ts ? formatTanggalAceh(ts) : (resolved ? 'Terdeteksi: {{section resolved}}' : '—'); const tgtTitle = getArchiveTitleForThread(t); // per utas return `<li class="da-thread-item" style="cursor:default"> <div> <div class="da-thread-title">${mw.html.escape(t.title)}</div> <div class="da-thread-meta">Komentar terakhir: ${tsTxt} <span class="da-badge">~${usia} bln</span></div> <div class="da-archive-target" style="margin-top:2px">→ ${mw.html.escape(tgtTitle)}</div> </div> </li>`; }).join(''); const { overlay, footer } = createDialog( `Pengarsip Diskusi — ${staleThreads.length} Utas Tidak Aktif`, `<p style="margin:0 0 8px;font-size:0.93em"> Utas berikut memiliki komentar terakhir <b>≥ 2 bulan</b> yang lalu atau mengandung templat <code>{{section resolved}}</code>. Klik <b>Lanjut</b> untuk mengkonfirmasi setiap utas satu per satu. </p> <ul class="da-thread-list">${listItems}</ul>` ); addBtn(footer, 'Batal', 'mw-ui-destructive', () => { overlay.remove(); resolve(false); }); addBtn(footer, 'Lanjut →', 'mw-ui-progressive', () => { overlay.remove(); resolve(true); }); }); if (!proceed) return; // 6. Konfirmasi per utas (archiveTitle dihitung di dalam fungsi) const approved = await confirmPerThread(staleThreads); if (!approved.length) { notify('ℹ️ Tidak ada utas yang dipilih untuk diarsipkan.', 'info'); return; } // 7. Dialog progres + eksekusi const { overlay, body, footer } = createDialog( `Mengarsipkan ${approved.length} Utas…`, `<div class="da-progress" id="da-prog-msg">⏳ Memproses…</div>` ); const progMsg = document.getElementById('da-prog-msg'); try { progMsg.textContent = `⏳ Menyimpan perubahan ke ${baseTitle} dan halaman arsip tujuan…`; await doArchive(approved); progMsg.innerHTML = `✅ <b>${approved.length} utas</b> berhasil diarsipkan.`; addBtn(footer, 'Tutup & Muat Ulang', 'mw-ui-progressive', () => { overlay.remove(); location.reload(); }); } catch (e) { console.error('[DiscussionArchiver:Aceh] Error:', e); progMsg.textContent = '❌ Gagal mengarsipkan. Lihat konsol untuk detail.'; addBtn(footer, 'Tutup', 'mw-ui-destructive', () => overlay.remove()); } } // ── Tombol mengambang ───────────────────────────────────────────────── const floatBtn = document.createElement('button'); floatBtn.id = 'da-float-btn'; floatBtn.textContent = '📦 Arsipkan Diskusi'; floatBtn.title = 'DiscussionArchiver.js (Wikipedia Aceh) — Arsipkan utas tidak aktif (≥ 2 bulan) atau yang berlabel resolved'; floatBtn.addEventListener('click', runArchiver); document.body.appendChild(floatBtn); })(); // </nowiki> 69ep6si6kls5osg830b5z166z4xhxkn MediaWiki:Gadget-DiscussionArchiver-core.js 8 33674 158131 2026-05-24T13:40:33Z Rachmat04 7338 baru 158131 javascript text/javascript /** * [DISCUSSIONARCHIVER-CORE.JS — INTI GADGET PENGARSIP DISKUSI] * * •==============================================• * > Tipe : JavaScript (MediaWiki Gadget — shared core) * > Versi : 2.0.0 * > Fungsi: Logika bersama untuk mengarsipkan utas * diskusi yang tidak aktif. * * Cara pakai: * Muat file ini lebih dulu, lalu muat salah satu * file konfigurasi wiki: * • DiscussionArchiver-idwikisource.js * • DiscussionArchiver-gorwiki.js * • DiscussionArchiver-acewiki.js * * File konfigurasi memanggil: * window.DiscussionArchiverCore.init(CONFIG) * •==============================================• */ // <nowiki> (function () { 'use strict'; // Tolak jika sudah dimuat sebelumnya if (window.DiscussionArchiverCore) return; // ── CSS — Codex Wikimedia Design System ────────────────────────────── // // Token mengacu pada: // https://doc.wikimedia.org/codex/latest/design-tokens/overview.html // // Strategi dark mode: // 1. Light (default) : variabel di .da-dialog // 2. Night mode paksa : html.skin-theme-clientpref-night .da-dialog // 3. Night mode OS : @media (prefers-color-scheme:dark) // html.skin-theme-clientpref-os .da-dialog mw.util.addCSS(` /* ── Token: light mode (default) ── */ .da-dialog { --cdx-color-base: #202122; --cdx-color-subtle: #54595d; --cdx-color-placeholder: #72777d; --cdx-color-inverted: #ffffff; --cdx-color-progressive: #3366cc; --cdx-color-progressive--hover: #2a4b8d; --cdx-color-progressive--active: #2a4b8d; --cdx-color-destructive: #d73333; --cdx-color-destructive--hover: #b32424; --cdx-background-color-base: #ffffff; --cdx-background-color-neutral: #f8f9fa; --cdx-background-color-neutral--hover: #eaecf0; --cdx-background-color-destructive--subtle: #fee7e6; --cdx-border-color-base: #a2a9b1; --cdx-border-color-subtle: #eaecf0; --cdx-border-color-progressive: #3366cc; --cdx-font-family-sans: system-ui, -apple-system, sans-serif; --cdx-font-size-small: 0.8125rem; --cdx-font-size-medium: 0.875rem; --cdx-font-size-large: 1rem; --cdx-font-weight-bold: 700; --cdx-line-height-medium: 1.5; --cdx-border-radius-base: 2px; --cdx-spacing-25: 2px; --cdx-spacing-50: 4px; --cdx-spacing-75: 6px; --cdx-spacing-100: 8px; --cdx-spacing-150: 12px; --cdx-spacing-200: 16px; --cdx-spacing-300: 24px; } /* ── Token: night mode paksa (Vector 2022 / Minerva) ── */ html.skin-theme-clientpref-night .da-dialog { --cdx-color-base: #eaecf0; --cdx-color-subtle: #a2a9b1; --cdx-color-placeholder: #72777d; --cdx-color-inverted: #101418; --cdx-color-progressive: #6699ff; --cdx-color-progressive--hover: #99b3ff; --cdx-color-progressive--active: #99b3ff; --cdx-color-destructive: #ff8080; --cdx-color-destructive--hover: #ffb3b3; --cdx-background-color-base: #101418; --cdx-background-color-neutral: #1e2228; --cdx-background-color-neutral--hover: #2a3040; --cdx-background-color-destructive--subtle: #3a1010; --cdx-border-color-base: #54595d; --cdx-border-color-subtle: #2a3040; --cdx-border-color-progressive: #6699ff; } /* ── Token: night mode otomatis (ikut OS) ── */ @media screen and (prefers-color-scheme: dark) { html.skin-theme-clientpref-os .da-dialog { --cdx-color-base: #eaecf0; --cdx-color-subtle: #a2a9b1; --cdx-color-placeholder: #72777d; --cdx-color-inverted: #101418; --cdx-color-progressive: #6699ff; --cdx-color-progressive--hover: #99b3ff; --cdx-color-progressive--active: #99b3ff; --cdx-color-destructive: #ff8080; --cdx-color-destructive--hover: #ffb3b3; --cdx-background-color-base: #101418; --cdx-background-color-neutral: #1e2228; --cdx-background-color-neutral--hover: #2a3040; --cdx-background-color-destructive--subtle: #3a1010; --cdx-border-color-base: #54595d; --cdx-border-color-subtle: #2a3040; --cdx-border-color-progressive: #6699ff; } } /* ── Overlay ── */ .da-overlay { position: fixed; inset: 0; background: rgba(0, 0, 0, 0.65); z-index: 100000; display: flex; align-items: center; justify-content: center; padding: var(--cdx-spacing-150); animation: da-fadein .15s ease-out; } /* ── Dialog — mengikuti pola cdx-dialog ── */ .da-dialog { background: var(--cdx-background-color-base); color: var(--cdx-color-base); border: 1px solid var(--cdx-border-color-base); border-radius: var(--cdx-border-radius-base); width: min(672px, 96%); max-height: 88vh; overflow: hidden; display: flex; flex-direction: column; box-shadow: 0 2px 2px 0 rgba(0,0,0,.2), 0 0 2px 0 rgba(0,0,0,.1); font-family: var(--cdx-font-family-sans); font-size: var(--cdx-font-size-medium); line-height: var(--cdx-line-height-medium); animation: da-slidein .15s ease-out; } /* ── Header ── */ .da-dialog-header { padding: var(--cdx-spacing-150) var(--cdx-spacing-200); border-bottom: 1px solid var(--cdx-border-color-subtle); background: var(--cdx-background-color-neutral); font-size: var(--cdx-font-size-large); font-weight: var(--cdx-font-weight-bold); color: var(--cdx-color-base); display: flex; align-items: center; gap: var(--cdx-spacing-100); flex-shrink: 0; } /* ── Body ── */ .da-dialog-body { padding: var(--cdx-spacing-200); overflow-y: auto; flex: 1; color: var(--cdx-color-base); } /* ── Footer ── */ .da-dialog-footer { padding: var(--cdx-spacing-150) var(--cdx-spacing-200); border-top: 1px solid var(--cdx-border-color-subtle); background: var(--cdx-background-color-neutral); display: flex; justify-content: flex-end; gap: var(--cdx-spacing-100); flex-shrink: 0; } /* ── Tombol — cdx-button ── */ .da-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 32px; padding: 5px var(--cdx-spacing-150); border-radius: var(--cdx-border-radius-base); font-family: var(--cdx-font-family-sans); font-size: var(--cdx-font-size-medium); font-weight: var(--cdx-font-weight-bold); line-height: 1.4286rem; cursor: pointer; transition: background-color 100ms, color 100ms, border-color 100ms; white-space: nowrap; border: 1px solid transparent; text-decoration: none; } .da-btn:focus-visible { outline: 2px solid var(--cdx-color-progressive); outline-offset: 2px; } .da-btn--normal { background: var(--cdx-background-color-base); color: var(--cdx-color-base); border-color: var(--cdx-border-color-base); } .da-btn--normal:hover { background: var(--cdx-background-color-neutral--hover); border-color: var(--cdx-color-base); } .da-btn--progressive { background: var(--cdx-color-progressive); color: var(--cdx-color-inverted); border-color: var(--cdx-color-progressive); } .da-btn--progressive:hover { background: var(--cdx-color-progressive--hover); border-color: var(--cdx-color-progressive--hover); } .da-btn--destructive { background: var(--cdx-color-destructive); color: var(--cdx-color-inverted); border-color: var(--cdx-color-destructive); } .da-btn--destructive:hover { background: var(--cdx-color-destructive--hover); border-color: var(--cdx-color-destructive--hover); } /* ── Daftar utas ── */ .da-thread-list { list-style: none; margin: var(--cdx-spacing-100) 0; padding: 0; max-height: 320px; overflow-y: auto; border: 1px solid var(--cdx-border-color-subtle); border-radius: var(--cdx-border-radius-base); } .da-thread-item { display: flex; align-items: flex-start; gap: var(--cdx-spacing-100); padding: var(--cdx-spacing-100) var(--cdx-spacing-150); border-bottom: 1px solid var(--cdx-border-color-subtle); transition: background 100ms; } .da-thread-item:last-child { border-bottom: none; } .da-thread-item:hover { background: var(--cdx-background-color-neutral--hover); } .da-thread-title { font-weight: var(--cdx-font-weight-bold); font-size: var(--cdx-font-size-medium); color: var(--cdx-color-base); } .da-thread-meta { font-size: var(--cdx-font-size-small); color: var(--cdx-color-subtle); margin-top: var(--cdx-spacing-25); } /* ── Badge — cdx-message status ── */ .da-badge { display: inline-flex; align-items: center; background: var(--cdx-background-color-destructive--subtle); color: var(--cdx-color-destructive); border-radius: var(--cdx-border-radius-base); padding: 0 var(--cdx-spacing-75); font-size: var(--cdx-font-size-small); font-weight: var(--cdx-font-weight-bold); margin-left: var(--cdx-spacing-75); vertical-align: middle; line-height: 18px; } /* ── Kotak konfirmasi ── */ .da-confirm-box { background: var(--cdx-background-color-neutral); border: 1px solid var(--cdx-border-color-subtle); border-left: 3px solid var(--cdx-color-progressive); border-radius: var(--cdx-border-radius-base); padding: var(--cdx-spacing-100) var(--cdx-spacing-150); margin-bottom: var(--cdx-spacing-150); } .da-confirm-box strong { display: block; margin-bottom: var(--cdx-spacing-50); font-weight: var(--cdx-font-weight-bold); color: var(--cdx-color-base); } .da-confirm-meta { font-size: var(--cdx-font-size-small); color: var(--cdx-color-subtle); margin: var(--cdx-spacing-50) 0 var(--cdx-spacing-100); } .da-archive-target { font-size: var(--cdx-font-size-small); color: var(--cdx-color-progressive); word-break: break-all; } /* ── Progres & status kosong ── */ .da-progress { font-size: var(--cdx-font-size-medium); color: var(--cdx-color-subtle); margin-top: var(--cdx-spacing-100); min-height: 1.4em; } .da-empty { text-align: center; padding: var(--cdx-spacing-300) 0; color: var(--cdx-color-placeholder); font-size: var(--cdx-font-size-medium); } .da-hint { font-size: var(--cdx-font-size-small); color: var(--cdx-color-subtle); margin: var(--cdx-spacing-75) 0 0; } /* ── Animasi ── */ @keyframes da-fadein { from { opacity: 0; } to { opacity: 1; } } @keyframes da-slidein { from { opacity: 0; transform: translateY(-6px); } to { opacity: 1; transform: translateY(0); } } /* ── Tombol mengambang ── */ #da-float-btn { position: fixed; bottom: 130px; right: 25px; background: #3366cc; color: #ffffff; border: 1px solid #3366cc; padding: 5px 12px; border-radius: 2px; cursor: pointer; z-index: 99999; font-family: system-ui, -apple-system, sans-serif; font-size: 0.875rem; font-weight: 700; line-height: 1.4286rem; box-shadow: 0 2px 2px 0 rgba(0,0,0,.2); transition: background-color 100ms, border-color 100ms; } #da-float-btn:hover { background: #2a4b8d; border-color: #2a4b8d; } #da-float-btn:focus-visible { outline: 2px solid #3366cc; outline-offset: 2px; } `); // ── Utilitas bersama ────────────────────────────────────────────────── /** * Hitung selisih bulan antara dua Date. * @param {Date} dari * @param {Date} ke * @returns {number} */ function selisihBulan(dari, ke) { return (ke.getFullYear() - dari.getFullYear()) * 12 + (ke.getMonth() - dari.getMonth()); } /** * Tampilkan notifikasi MediaWiki. * @param {string} msg * @param {'info'|'warn'|'error'} type */ function notify(msg, type) { type = type || 'info'; if (mw.notify) { mw.notify(msg, { type: type }); } else { console.log('[DiscussionArchiver]', msg); } } // ── UI ──────────────────────────────────────────────────────────────── /** * Buat dialog modal. * @param {string} titleHtml * @param {string} bodyHtml * @returns {{ overlay, dialog, body, footer }} */ function createDialog(titleHtml, bodyHtml) { var overlay = document.createElement('div'); overlay.className = 'da-overlay'; var dialog = document.createElement('div'); dialog.className = 'da-dialog'; dialog.setAttribute('role', 'dialog'); dialog.setAttribute('aria-modal', 'true'); dialog.innerHTML = '<div class="da-dialog-header">\uD83D\uDCE6 ' + titleHtml + '</div>' + '<div class="da-dialog-body">' + bodyHtml + '</div>' + '<div class="da-dialog-footer"></div>'; overlay.appendChild(dialog); overlay.addEventListener('click', function (e) { if (e.target === overlay) overlay.remove(); }); document.body.appendChild(overlay); return { overlay: overlay, dialog: dialog, body: dialog.querySelector('.da-dialog-body'), footer: dialog.querySelector('.da-dialog-footer') }; } /** * Tambahkan tombol ke footer dialog. * @param {HTMLElement} footer * @param {string} label * @param {'normal'|'progressive'|'destructive'} weight * @param {Function} onClick * @returns {HTMLButtonElement} */ function addBtn(footer, label, weight, onClick) { var btn = document.createElement('button'); btn.className = 'da-btn da-btn--' + weight; btn.textContent = label; btn.addEventListener('click', onClick); footer.appendChild(btn); return btn; } // ── Logika bersama ──────────────────────────────────────────────────── /** * Parse wikitext menjadi array utas level-2. * @param {string} wikitext * @returns {Array<{title:string, content:string, start:number, end:number}>} */ function parseThreads(wikitext) { var headerRe = /^==\s*([^=\n][^\n]*?)\s*==\s*$/gm; var positions = []; var m; while ((m = headerRe.exec(wikitext)) !== null) { positions.push({ title: m[1].trim(), start: m.index }); } positions.push({ title: null, start: wikitext.length }); var threads = []; for (var i = 0; i < positions.length - 1; i++) { var start = positions[i].start; var end = positions[i + 1].start; threads.push({ title: positions[i].title, content: wikitext.substring(start, end), start: start, end: end }); } return threads; } /** * Konfirmasi pengarsipan per utas, satu per satu. * Mengembalikan Promise yang resolve ke array utas yang disetujui. * * @param {Array} threads - Utas yang perlu dikonfirmasi * @param {Object} cfg - Konfigurasi wiki (lihat init()) * @returns {Promise<Array>} */ function confirmPerThread(threads, cfg) { return new Promise(function (resolve) { var approved = []; var idx = 0; function showNext() { if (idx >= threads.length) { resolve(approved); return; } var t = threads[idx]; var ts = cfg.getLatestTimestamp(t.content); var resolved = cfg.isResolved ? cfg.isResolved(t.content) : false; var usia = ts ? selisihBulan(ts, new Date()) : (resolved ? 'resolved' : '?'); var tsTxt = ts ? cfg.formatTanggal(ts) : (resolved ? 'Terdeteksi: {{section resolved}}' : 'Tidak terdeteksi'); var tgtTitle = cfg.getArchiveTitle(t); var ui = createDialog( 'Konfirmasi Arsip Utas (' + (idx + 1) + '/' + threads.length + ')', '<div class="da-confirm-box">' + '<strong>\uD83D\uDCC4 ' + mw.html.escape(t.title) + '</strong>' + '<div class="da-confirm-meta">' + 'Komentar terakhir: <b>' + tsTxt + '</b>' + '<span class="da-badge">~' + usia + ' bulan lalu</span>' + '</div>' + '<div class="da-archive-target">\u2192 Akan diarsipkan ke: <b>' + mw.html.escape(tgtTitle) + '</b></div>' + '</div>' + '<p class="da-hint">Klik <b>Lewati</b> untuk melewati utas ini tanpa mengarsipkan.</p>' ); addBtn(ui.footer, 'Lewati', 'normal', function () { ui.overlay.remove(); idx++; showNext(); }); addBtn(ui.footer, 'Arsipkan', 'progressive', function () { approved.push(t); ui.overlay.remove(); idx++; showNext(); }); } showNext(); }); } /** * Hapus utas dari halaman asal, lalu simpan ke halaman arsip yang sesuai. * * @param {Array} threadsToArchive - Utas yang sudah disetujui * @param {Object} cfg - Konfigurasi wiki * @param {mw.Api} api * @param {string} page - Nama halaman asal (wgPageName) * @returns {Promise<{archivedCount:number, archiveTitles:string[]}>} */ async function doArchive(threadsToArchive, cfg, api, page) { // Ambil ulang wikitext terbaru agar tidak bentrok dengan edit lain var res = await api.get({ action: 'query', prop: 'revisions', rvprop: ['content', 'timestamp'], titles: page, formatversion: 2 }); var pageData = res.query.pages[0]; var text = pageData.revisions[0].content; var baseTimestamp = pageData.revisions[0].timestamp; // Hapus setiap utas dari teks asal for (var i = 0; i < threadsToArchive.length; i++) { var escaped = threadsToArchive[i].content.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); text = text.replace(new RegExp(escaped), ''); } text = text.replace(/\n{3,}/g, '\n\n').trim(); // Kelompokkan utas berdasarkan halaman arsip tujuannya var groupMap = {}; for (var j = 0; j < threadsToArchive.length; j++) { var t = threadsToArchive[j]; var archiveTitle = cfg.getArchiveTitle(t); if (!groupMap[archiveTitle]) groupMap[archiveTitle] = []; groupMap[archiveTitle].push(t); } var archiveTitles = Object.keys(groupMap); var sourceTitle = page.replace(/_/g, ' '); var archiveList = archiveTitles.map(function (t) { return '[[' + t + ']]'; }).join(', '); // Simpan halaman asal await api.postWithToken('csrf', { action: 'edit', title: page, text: text, summary: 'Mengarsipkan ' + threadsToArchive.length + ' utas tidak aktif ke ' + archiveList, basetimestamp: baseTimestamp }); // Simpan setiap halaman arsip for (var archiveTitle in groupMap) { var threads = groupMap[archiveTitle]; var arsRes = await api.get({ action: 'query', prop: 'revisions', rvprop: 'content', titles: archiveTitle, formatversion: 2 }); var arsPage = arsRes.query.pages[0]; var arsText = (arsPage.revisions && arsPage.revisions[0].content) || ''; if (!arsPage.revisions) { arsText = cfg.archiveHeader(sourceTitle, archiveTitle); } var newBlocks = threads.map(function (t) { return t.content.trim(); }).join('\n\n'); arsText = arsText.trim() + '\n\n' + newBlocks + '\n'; await api.postWithToken('csrf', { action: 'edit', title: archiveTitle, text: arsText.trim(), summary: 'Menambahkan ' + threads.length + ' utas dari [[' + sourceTitle + ']]' }); } return { archivedCount: threadsToArchive.length, archiveTitles: archiveTitles }; } // ── Alur utama ──────────────────────────────────────────────────────── /** * Jalankan alur pengarsipan lengkap. * * @param {Object} cfg - Konfigurasi wiki (lihat init()) * @param {mw.Api} api * @param {string} page - wgPageName */ async function runArchiver(cfg, api, page) { // 1. Ambil wikitext var data; try { data = await api.get({ action: 'query', prop: 'revisions', rvprop: 'content', titles: page, formatversion: 2 }); } catch (e) { notify('\u26A0\uFE0F Gagal memuat isi halaman.', 'error'); return; } var wikitext = ( data.query.pages[0] && data.query.pages[0].revisions && data.query.pages[0].revisions[0] && data.query.pages[0].revisions[0].content ) || ''; if (!wikitext) { notify('\u26A0\uFE0F Halaman kosong atau gagal dimuat.', 'warn'); return; } // 2. Parse utas level-2 var allThreads = parseThreads(wikitext); if (!allThreads.length) { notify('\u2139\uFE0F Tidak ditemukan utas level-2 di halaman ini.', 'info'); return; } // 3. Filter utas tidak aktif var now = new Date(); var staleThreads = allThreads.filter(function (t) { var ts = cfg.getLatestTimestamp(t.content); var resolved = cfg.isResolved ? cfg.isResolved(t.content) : false; if (resolved) return true; if (!ts) return false; return selisihBulan(ts, now) >= cfg.staleMonths; }); // 4. Tidak ada yang kedaluwarsa if (!staleThreads.length) { var ui0 = createDialog( 'Pengarsip Diskusi \u2014 Tidak Ada Utas Kedaluwarsa', '<div class="da-empty">' + '\u2705 Semua utas masih aktif (komentar terakhir &lt; ' + cfg.staleMonths + ' bulan).' + (cfg.isResolved ? ' Tidak ada templat {{section resolved}}.' : '') + '<br>Tidak ada yang perlu diarsipkan saat ini.</div>' ); addBtn(ui0.footer, 'Tutup', 'normal', function () { ui0.overlay.remove(); }); return; } // 5. Ringkasan sebelum konfirmasi per utas var proceed = await new Promise(function (resolve) { var listItems = staleThreads.map(function (t) { var ts = cfg.getLatestTimestamp(t.content); var resolved = cfg.isResolved ? cfg.isResolved(t.content) : false; var usia = ts ? selisihBulan(ts, now) : (resolved ? 'resolved' : '?'); var tsTxt = ts ? cfg.formatTanggal(ts) : (resolved ? 'Terdeteksi: {{section resolved}}' : '\u2014'); var tgtTitle = cfg.getArchiveTitle(t); return '<li class="da-thread-item" style="cursor:default">' + '<div>' + '<div class="da-thread-title">' + mw.html.escape(t.title) + '</div>' + '<div class="da-thread-meta">' + 'Komentar terakhir: ' + tsTxt + '<span class="da-badge">~' + usia + ' bln</span><br>' + '<span style="color:var(--cdx-color-progressive)">\u2192 ' + mw.html.escape(tgtTitle) + '</span>' + '</div>' + '</div>' + '</li>'; }).join(''); var resolvedNote = cfg.isResolved ? ' atau mengandung templat <code>{{section resolved}}</code>' : ''; var ui = createDialog( 'Pengarsip Diskusi \u2014 ' + staleThreads.length + ' Utas Tidak Aktif', '<p style="margin:0 0 8px;font-size:var(--cdx-font-size-medium);color:var(--cdx-color-base)">' + 'Utas berikut memiliki komentar terakhir <b>\u2265 ' + cfg.staleMonths + ' bulan</b>' + ' yang lalu' + resolvedNote + '.' + ' Klik <b>Lanjut</b> untuk mengkonfirmasi setiap utas satu per satu.' + '</p>' + '<ul class="da-thread-list">' + listItems + '</ul>' ); addBtn(ui.footer, 'Batal', 'destructive', function () { ui.overlay.remove(); resolve(false); }); addBtn(ui.footer, 'Lanjut \u2192', 'progressive', function () { ui.overlay.remove(); resolve(true); }); }); if (!proceed) return; // 6. Konfirmasi per utas var approved = await confirmPerThread(staleThreads, cfg); if (!approved.length) { notify('\u2139\uFE0F Tidak ada utas yang dipilih untuk diarsipkan.', 'info'); return; } // 7. Dialog progres + eksekusi var targetPages = approved .map(function (t) { return cfg.getArchiveTitle(t); }) .filter(function (v, i, a) { return a.indexOf(v) === i; }); var uiProg = createDialog( 'Mengarsipkan ' + approved.length + ' Utas\u2026', '<div class="da-progress" id="da-prog-msg">\u23F3 Memproses\u2026</div>' ); var progMsg = document.getElementById('da-prog-msg'); try { progMsg.textContent = '\u23F3 Menyimpan ke ' + targetPages.join(', ') + '\u2026'; var result = await doArchive(approved, cfg, api, page); var links = result.archiveTitles.map(function (t) { return '<a href="/wiki/' + encodeURIComponent(t.replace(/ /g, '_')) + '" target="_blank" style="color:var(--cdx-color-progressive)">' + mw.html.escape(t) + '</a>'; }).join(', '); progMsg.innerHTML = '\u2705 <b>' + result.archivedCount + ' utas</b> berhasil diarsipkan ke: ' + links + '.'; addBtn(uiProg.footer, 'Tutup & Muat Ulang', 'progressive', function () { uiProg.overlay.remove(); location.reload(); }); } catch (e) { console.error('[DiscussionArchiver] Error:', e); progMsg.textContent = '\u274C Gagal mengarsipkan. Lihat konsol untuk detail.'; addBtn(uiProg.footer, 'Tutup', 'destructive', function () { uiProg.overlay.remove(); }); } } // ── API publik ──────────────────────────────────────────────────────── /** * Inisialisasi gadget untuk satu wiki. * * @param {Object} cfg - Konfigurasi wiki dengan properti berikut: * * === Guard === * cfg.isAllowedPage(mwConfig) * → Function(mwConfig): boolean * Kembalikan true jika gadget boleh berjalan di halaman ini. * * === Timestamp === * cfg.getLatestTimestamp(text) * → Function(string): Date|null * Cari dan kembalikan timestamp terbaru dalam blok wikitext. * * cfg.formatTanggal(date) * → Function(Date): string * Format Date ke string yang ditampilkan di UI. * * === Arsip === * cfg.getArchiveTitle(thread) * → Function({content:string, title:string, ...}): string * Kembalikan judul halaman arsip untuk sebuah utas. * * cfg.archiveHeader(sourceTitle, archiveTitle) * → Function(string, string): string * Kembalikan konten awal halaman arsip baru (jika belum ada). * * === Opsional === * cfg.staleMonths {number} - Ambang batas bulan tidak aktif (default: 2) * * cfg.isResolved(text) * → Function(string): boolean * Deteksi apakah utas punya tanda "resolved" (misal templat). * Jika tidak didefinisikan, fitur ini tidak aktif. * * cfg.floatBtnTitle {string} - Tooltip tombol mengambang (opsional) */ function init(cfg) { var mwCfg = mw.config.get(); var api = new mw.Api(); var page = mwCfg.wgPageName; // Validasi konfigurasi minimum if (typeof cfg.isAllowedPage !== 'function') { console.error('[DiscussionArchiver] cfg.isAllowedPage harus berupa fungsi.'); return; } if (typeof cfg.getLatestTimestamp !== 'function') { console.error('[DiscussionArchiver] cfg.getLatestTimestamp harus berupa fungsi.'); return; } if (typeof cfg.formatTanggal !== 'function') { console.error('[DiscussionArchiver] cfg.formatTanggal harus berupa fungsi.'); return; } if (typeof cfg.getArchiveTitle !== 'function') { console.error('[DiscussionArchiver] cfg.getArchiveTitle harus berupa fungsi.'); return; } if (typeof cfg.archiveHeader !== 'function') { console.error('[DiscussionArchiver] cfg.archiveHeader harus berupa fungsi.'); return; } cfg.staleMonths = cfg.staleMonths || 2; // Guard: izin akses sysop var groups = mwCfg.wgUserGroups || []; if (!groups.includes('sysop')) return; // Guard: kondisi spesifik wiki if (!cfg.isAllowedPage(mwCfg)) return; // Guard: jangan jalan di diff / history / revisi lama if ( mwCfg.wgAction === 'history' || mwCfg.wgDiffNewId || mwCfg.wgDiffOldId || mwCfg.wgCurRevisionId !== mwCfg.wgRevisionId ) return; // Tombol mengambang var floatBtn = document.createElement('button'); floatBtn.id = 'da-float-btn'; floatBtn.textContent = '\uD83D\uDCE6 Arsipkan Diskusi'; floatBtn.title = cfg.floatBtnTitle || 'DiscussionArchiver — Arsipkan utas tidak aktif'; floatBtn.addEventListener('click', function () { runArchiver(cfg, api, page); }); document.body.appendChild(floatBtn); } // ── Ekspor ──────────────────────────────────────────────────────────── window.DiscussionArchiverCore = { init: init }; })(); // </nowiki> 1lsztshzzcqzzwbrwetgdjtuokphdib MediaWiki:Gadget-DiscussionArchiver.js 8 33675 158133 2026-05-24T13:41:35Z Rachmat04 7338 Rachmat04 geupinah laman [[MediaWiki:Gadget-DiscussionArchiver.js]] u [[MediaWiki:Gadget-DiscussionArchiver-acewiki.js]] 158133 javascript text/javascript /* #REDIRECT */mw.loader.load("//ace.wikipedia.org/w/index.php?title=MediaWiki:Gadget-DiscussionArchiver-acewiki.js&action=raw&ctype=text/javascript"); 8paqt9bdo5jvlvr2w7dkbyu0njonslt Kawan:Anabantidae 14 33676 158137 2026-05-25T11:38:57Z Si Gam 4266 Geupeugöt laman ngön asoë '[[Kawan:Anabantiformes]]' 158137 wikitext text/x-wiki [[Kawan:Anabantiformes]] 499sq3lb2j9hwbbnd0udpylonrfcjwu Kawan:Anabantiformes 14 33677 158138 2026-05-25T11:40:27Z Si Gam 4266 Geupeugöt laman ngön asoë '[[Kawan:Actinopterygii]]' 158138 wikitext text/x-wiki [[Kawan:Actinopterygii]] 80g9pefuxp138rgrqw8kmdw5r0ejoif