== Stasiun pemberhentian ==
{| class="wikitable"
|+
! rowspan="2" |{{rint|KAI|KAI}} Stasiun
! colspan="4" |Lokasi
! colspan="2" |Status
|-
!Provinsi
!Letak (KM)
!Jalur Lintas
!Kota/Kabupaten
!Stasiun<ref name="Gapeka 2023: Pulau Jawa"/>
!Provinsi
!Keterangan
!Pagi
!Status
!Malam
|-
| rowspan=7 | [[Jawa Barat]]
|'''[[Stasiun Bandung|Bandung]]{{efn|Terletak juga di km 0+000 untuk jalur non aktif [[Jalur kereta api Bandung–Ciwidey|Bandung-Ciwidey]]}}'''
| rowspan=2 | [[Kota Bandung]]
|'''155+134'''
| {{sta|Bandung}}
| rowspan="15" |[[Stasiun Bogor|Bogor]]-[[Stasiun Yogyakarta|Yogyakarta]]{{efn|Mencakup segmen [[Jalur kereta api Padalarang–Kasugihan|Padalarang-Kasugihan]], [[Jalur kereta api Cilacap–Kroya–Kutoarjo–Purworejo|Kasugihan-Kutoarjo]], dan [[Jalur kereta api Kutoarjo–Purwosari–Solo Balapan|Kutoarjo-Yogyakarta]]}}
| {{rint|bandung|b}} {{rint|bandung|c}} {{rint|bandung|2d}} {{rint|bandung|3d}} {{rint|bandung|4d}}<br>Stasiun ujung, terintegrasi dengan [[Commuter Line Bandung Raya]] dan [[Commuter Line Garut|Garut]] serta layanan bus [[Teman Bus]] ([[Trans Metro Pasundan]])
| rowspan="2" |[[Kota Bandung]]
| rowspan="7" |[[Jawa Barat]]
|★
|★
|-
|[[Stasiun Kiaracondong{{sta|Kiaracondong]]}}
| {{rint|bandung|b}} {{rint|bandung|c}}<br>Terintegrasi dengna Commuter Line Bandung Raya dan Garut
|160+124
|■
|■
|-
| rowspan=2 | [[Kabupaten Garut|Garut]]
|[[Stasiun Leles|Leles]]
| {{sta|Leles}}
|202+960
| {{rint|bandung|c}}<br>Terintegrasi dengan Commuter Line Garut
| rowspan="2" |[[Kabupaten Garut|Garut]]
|♦◎
|■
|-
|[[Stasiun Cipeundeuy{{sta|Cipeundeuy]]}}
| Berhenti untuk pengecekan sarana kereta api
|234+538
|■
|■
|-
| [[Kota Tasikmalaya]]
|[[Stasiun Tasikmalaya|Tasikmalaya]]{{efn|Terletak juga di km 0+000 untuk jalur non aktif [[Jalur kereta api Tasikmalaya–Singaparna|Tasikmalaya-Singaparna]]}}
| {{sta|Tasikmalaya}}
|270+193
| rowspan=3 | –
|[[Kota Tasikmalaya]]
|■
|■
|-
| [[StasiunKabupaten Ciamis|Ciamis]]
| {{sta|Ciamis}}
|288+696
|◎
|[[Kabupaten Ciamis|Ciamis]]
|♦
|■
|-
| [[Kota Banjar]]
|[[Stasiun Banjar|Banjar]]{{efn|Terletak juga di km 0+000 untuk jalur non aktif [[Jalur kereta api Banjar–Cijulang|Banjar-Cijulang]]}}
| {{sta|Banjar}}
|310+969
|[[Kota Banjar]]
|■
|■
|-
| rowspan=9 | [[Jawa Tengah]]
|[[Stasiun Sidareja|Sidareja]]
| rowspan=4 | [[Kabupaten Cilacap|Cilacap]]
|346+645
| {{sta|Sidareja}}
| rowspan="4" |[[Kabupaten Cilacap|Cilacap]]
| Kecuali jadwal pagi arah Bandung
| rowspan="7" |[[Jawa Tengah]]
|▼◎
|■
|-
|[[Stasiun Gandrungmangun{{sta|Gandrungmangun]]}}
| Hanya jadwal pagi arah Malang
|354+041
|▼○
|♦
|-
| {{sta|Maos}}
|[[Stasiun Maos|Maos]]{{efn|Terletak juga di km 0+000 untuk jalur non aktif [[Jalur kereta api Maos–Purwokerto Timur|Maos-Purwokerto Timur]]}}
| rowspan=4 | –
|390+078
|■
|■
|-
| {{sta|Kroya}}
|[[Stasiun Kroya|Kroya]]{{efn|Terletak juga di km 377+122 untuk jalur aktif [[Stasiun Jakarta Kota|Jakarta Kota]]-'''Kroya'''}}
|402+776
|■
|■
|-
| rowspan=2 | [[Kabupaten Kebumen|Kebumen]]
|[[Stasiun Gombong|Gombong]]
| {{sta|Gombong}}
|431+103
|◎
| rowspan="2" |[[Kabupaten Kebumen|Kebumen]]
|♦
|■
|-
|[[Stasiun Kebumen{{sta|Kebumen]]}}
|450+808
|■
|■
|-
| [[Kabupaten Purworejo|Purworejo]]
|[[Stasiun Kutoarjo|Kutoarjo]]{{efn|Terletak juga di km 0+000 untuk jalur non aktif [[Jalur kereta api Cilacap–Kroya–Kutoarjo–Purworejo|Kutoarjo-Purworejo]]}}
| {{sta|Kutoarjo}}
|478+851
| {{rint|yogyakarta|blue}}<br>Terintegrasi dengan [[Commuter Line Prambanan Ekspres]]
|[[Kabupaten Purworejo|Purworejo]]
|■
|■
|-
| [[Kabupaten Klaten|Klaten]]
| rowspan="2" |[[Stasiun Yogyakarta|Yogyakarta]]
| {{sta|Klaten}}
|542+494
| {{rint|yogyakarta|red}} {{rint|yogyakarta|as}}<br>Terintegrasi dengan [[kereta api Bandara Internasional Adi Soemarmo]] dan [[Commuter Line Yogyakarta]]
| rowspan="2" |[[Kota Yogyakarta]]
Kecuali jadwal malam arah Bandung
| rowspan="2" |[[Daerah Istimewa Yogyakarta]]
|○
| rowspan="2" |■
| rowspan="2" |■
|-
| [[Kota Surakarta]]
|167+051
| {{sta|Solo Balapan}}
| rowspan="3" |[[Stasiun Semarang Tawang|Semarang Tawang]]-[[Stasiun Yogyakarta|Yogyakarta]]
| {{rint|yogyakarta|red}} {{rint|yogyakarta|as}}<br>Terintegrasi dengan KA Bandara Adi Soemarmo, Commuter Line Yogyakarta, layanan bus [[Batik Solo Trans]] dan [[Trans Jateng]] di [[Terminal Tirtonadi]]
|-
|[[Stasiun Klaten|Klaten]]
|138+493
|[[Kabupaten Klaten|Klaten]]
| rowspan="3" |[[Jawa Tengah]]
|■
|▼
|-
| rowspan="2" |[[Stasiun Solo Balapan|Solo Balapan]]
|107+914
| rowspan="2" |[[Kota Surakarta]]
| rowspan="2" |■
| rowspan="2" |■
|-
|262+720
| rowspan="5" |[[Stasiun Surabaya Kota|Surabaya Kota]]-[[Stasiun Solo Balapan|Solo Balapan]]
|-
| [[Daerah Istimewa Yogyakarta]]
|[[Stasiun Ngawi|Ngawi]]
| [[Kota Yogyakarta]]
|191+648
| {{sta|Yogyakarta}}
|[[Kabupaten Ngawi|Ngawi]]
| {{rint|yogyakarta|ya}} {{rint|yogyakarta|red}} {{rint|yogyakarta|blue}}<br>Terintegrasi dengan [[Lin Yogyakarta International Airport]], Commuter Line Yogyakarta, Prambanan Ekspres, layanan bus [[Trans Jogja]] dan [[Teman Bus]] Yogyakarta
| rowspan="13" |[[Jawa Timur]]
|■
|■
|-
| rowspan=13 | [[Jawa Timur]]
|[[Stasiun Madiun|Madiun]]{{efn|Terletak juga di km 0+000 jalur non aktif '''Madiun'''-''[[Stasiun Slahung|Slahung]]''}}
| [[Kabupaten Ngawi|Ngawi]]
|165+783
| {{sta|Ngawi}}
|[[Kota Madiun]]
| rowspan=3 | –
|■
|■
|-
| [[StasiunKota Nganjuk|NganjukMadiun]]
| {{sta|Madiun}}
|118+842
| rowspan="3" |[[Kabupaten Nganjuk|Nganjuk]]
|■
|-
| rowspan=2 | [[Kabupaten Nganjuk|Nganjuk]]
| {{sta|Nganjuk}}
|■
|-
| rowspan="2" {{sta|[[Stasiun Kertosono|Kertosono]]}}
| rowspan=3 | {{rint|surabaya|dh}}<br>Terintegrasi dengan [[Commuter Line Dhoho, Penataran, dan Tumapel#Dhoho|Commuter Line Dhoho]]
|96+888
| rowspan="2" |■
| rowspan="2" |■
|-
|215+479
| rowspan="9" |[[Jalur kereta api Kertosono–Bangil|Kertosono-Bangil]]
|-
|[[Stasiun Kediri|Kediri]]{{efn|Terletak juga di km 49+522 jalur non aktif Jombang-'''Kediri''' via ''[[Stasiun Pare|Pare]]''}}
|186+866
|[[Kota Kediri]]
|■
|■
|-
| [[Kota Kediri]]
|[[Stasiun Tulungagung|Tulungagung]]{{efn|Terletak juga di km 0+000 jalur non aktif '''Tulungagung'''-''Tugu''}}
| {{sta|Kediri}}
|156+820
|[[Kabupaten Tulungagung|Tulungagung]]
|■
|-
| [[Kabupaten Tulungagung|Tulungagung]]
| {{sta|Tulungagung}}
|■
|-
| [[StasiunKota Blitar|Blitar]]
| {{sta|Blitar}}
|122+895
| {{rint|surabaya|dh}} {{rint|surabaya|pe}}<br>Terintegrasi dengan Commuter Line Dhoho dan [[Commuter Line Dhoho, Penataran, dan Tumapel#Penataran|Penataran]]
|[[Kota Blitar]]
|■
|■
|-
| [[StasiunKabupaten WlingiBlitar|WlingiBlitar]]
| {{sta|Wlingi}}
|103+669
| {{rint|surabaya|pe}}<br>Terintegrasi dengan Commuter Line Penataran
|[[Kabupaten Blitar|Blitar]]
|♦◎
|■
|-
| rowspan=2 | [[Kabupaten Malang|Malang]]
|[[Stasiun Sumberpucung|Sumberpucung]]
| {{sta|Sumberpucung}}
|79+447
| {{rint|surabaya|pe}}<br>Terintegrasi dengan Commuter Line Penataran
| rowspan="2" |[[Kabupaten Malang|Malang]]
Hanya jadwal pagi arah Bandung
|▲
|♦○
|-
|[[Stasiun Kepanjen{{sta|Kepanjen]]}}
| rowspan=2 | {{rint|surabaya|pe}}<br>Terintegrasi dengan Commuter Line Penataran
|68+102
|■
|■
|-
| rowspan=2 | [[Kota Malang]]
|[[Stasiun Malang Kotalama|Malang Kotalama]]
| {{sta|Malang Kotalama}}
|51+370
| rowspan="2" |[[Kota Malang]]
|■
|■
|-
|[[Stasiun Malang{{sta|'''Malang''']]}}
| {{rint|surabaya|pe}} {{rint|surabaya|t}}<br>Stasiun ujung, terintegrasi dengan Commuter Line Penataran dan [[Commuter Line Dhoho, Penataran, dan Tumapel#Tumapel|Tumapel]]
|'''49+234'''
|★
|★
|}
'''Legenda'''
{| class="wikitable"
|★
|Stasiun terminusujung (ditulis tebalterminus)
|-
|♦
|Berjalan langsung
|-
|■
|Berhenti untuk keduasemua arah dan jadwal
|-
|▲○
|Berhenti hanya untuk arahjadwal Bandungpagi
|-
|▼◎
|Berhenti hanya untuk arahjadwal Malangmalam
|}
;Catatan
{{notelist}}
== Penghubung Antarmoda ==
<small>Catatan: Rute dari layanan berikut dapat berubah sewaktu-waktu serta kereta yang ditulis '''tebal''' menjadikan stasiun tertentu sebagai terminus.</small>
{| class="wikitable"
|+
! rowspan="2" |{{rint|KAI|KAI}} Stasiun
! rowspan="2" |Kereta Integrasi
! colspan="2" |Moda Lainnya
|-
!Nama Layanan
!Rute
|-
| rowspan="3" |[[Stasiun Bandung|Bandung]]
|{{Rint|bandung|b}} [[Commuter Line Bandung Raya|Bandung Raya]]
|{{bus icon}} [[Trans Metro Bandung]]
|{{rint|bandung|k2}} {{rint|bandung|k5}} {{rint|bandung|f1}}
|-
|{{Rint|bandung|c}} [[Commuter Line Garut|Garut]]
|{{bus icon}} [[Trans Metro Pasundan]]
|{{rint|bandung|2d}} {{rint|bandung|3d}} {{rint|bandung|4d}}
|-
|'''{{Rint|bandung|kc}} [[Kereta api pengumpan KCJB|KCJB]]'''
| rowspan="3" |{{bus icon}} Angkutan Kota Bandung
|09, 10, 11A, 11B, 12, 13, 14, dan 30
|-
| rowspan="2" |[[Stasiun Kiaracondong|Kiaracondong]]
|{{Rint|bandung|b}} [[Commuter Line Bandung Raya|Bandung Raya]]
| rowspan="2" |01A, 07, 08, 15, 16, 30, dan 32
|-
|{{Rint|bandung|c}} [[Commuter Line Garut|Garut]]
|-
|[[Stasiun Leles|Leles]]
|{{Rint|bandung|c}} [[Commuter Line Garut|Garut]]
|{{bus icon}} Angkutan Kabupaten Garut
|Terminal Guntur-Kadungora
|-
| rowspan="2" |[[Stasiun Maos|Maos]]
|{{Rint|jateng|js}} [[Kereta api Joglosemarkerto|JS Yogyakarta-Cilacap]]
| colspan="2" rowspan="6" |—
|-
|{{Rint|jateng|kd}} [[Kereta api Kamandaka|Kamandaka]]
|-
| rowspan="2" |[[Stasiun Kroya|Kroya]]
|{{Rint|jateng|js}} [[Kereta api Joglosemarkerto|Joglosemarkerto]]{{efn|Juga melayani rute [[Stasiun Yogyakarta|Yogyakarta]]-[[Stasiun Cilacap|Cilacap]]}}
|-
|{{Rint|jateng|kd}} [[Kereta api Kamandaka|Kamandaka]]
|-
|[[Stasiun Gombong|Gombong]]
| rowspan="2" |{{Rint|jateng|js}} [[Kereta api Joglosemarkerto|JS Lingkar Jateng-DIY]]
|-
|[[Stasiun Kebumen|Kebumen]]
|-
| rowspan="2" |[[Stasiun Kutoarjo|Kutoarjo]]
|{{Rint|jateng|js}} [[Kereta api Joglosemarkerto|JS Lingkar Jateng-DIY]]
| rowspan="2" |{{bus icon}} [[Trans Jateng]]
| rowspan="2" |{{Rint|jateng|4}} [[Kutoarjo, Purworejo|Kutoarjo]]-[[Borobudur, Magelang|Borobudur]]
|-
|'''{{Rint|yogyakarta|p}} [[Commuter Line Prambanan Ekspres|Prambanan Ekspres]]'''
|-
| rowspan="4" |[[Stasiun Yogyakarta|Yogyakarta]]
|{{Rint|jateng|js}} [[Kereta api Joglosemarkerto|Joglosemarkerto]]{{efn|Terminus untuk rute '''Yogyakarta-Cilacap'''}}
| rowspan="4" |{{bus icon}} [[Trans Jogja]]
|{{Rint|yogyakarta|1b}} [[Bandar Udara Adisutjipto|Bandara Adi Sucipto]]-[[Condongcatur, Depok, Sleman|Condongcatur]]
|-
|'''{{Rint|yogyakarta|p}} [[Commuter Line Prambanan Ekspres|Prambanan Ekspres]]'''
|{{Rint|yogyakarta|3b}} [[Terminal Giwangan]]-[[Condongcatur, Depok, Sleman|Condongcatur]]
|-
|'''{{Rint|yogyakarta|y}} [[Commuter Line Yogyakarta|Yogyakarta]]'''
|{{Rint|yogyakarta|8}} [[Terminal Jombor]]-Jogokaryan
|-
|'''{{Rint|yogyakarta|ya}} [[Lin Yogyakarta International Airport|Bandara Internasional Yogyakarta]]'''
|—
|-
| rowspan="2" |[[Stasiun Klaten|Klaten]]
|{{Rint|jateng|js}} [[Kereta api Joglosemarkerto|JS Lingkar Jateng-DIY]]
| colspan="2" rowspan="2" |—
|-
|{{Rint|yogyakarta|y}} [[Commuter Line Yogyakarta|Yogyakarta]]
|-
| rowspan="3" |[[Stasiun Solo Balapan|Solo Balapan]]
|{{Rint|yogyakarta|as}} [[Kereta api Bandara Adi Soemarmo|Bandara Adi Soemarmo]]
| rowspan="3" |{{bus icon}} [[Batik Solo Trans]]
|{{Rint|solo|k2}} Terminal Palur-Terminal Kerten
|-
|'''{{Rint|jateng|js}} [[Kereta api Joglosemarkerto|JS Lingkar Jateng-DIY]]'''
|{{Rint|solo|k6}} [[Terminal Tirtonadi]]-Solo Baru
|-
|{{Rint|yogyakarta|y}} [[Commuter Line Yogyakarta|Yogyakarta]]
|—
|-
|[[Stasiun Ngawi|Ngawi]]
|{{Rint|yogyakarta|as}} [[Kereta api Bandara Adi Soemarmo|Bandara Adi Soemarmo]]
| colspan="2" rowspan="3" |—
|-
|[[Stasiun Madiun|Madiun]]
|'''{{Rint|yogyakarta|as}} [[Kereta api Bandara Adi Soemarmo|Bandara Adi Soemarmo]]'''
|-
|[[Stasiun Kertosono|Kertosono]]
| rowspan="3" |{{rint|surabaya|dh}} [[Commuter Line Dhoho, Penataran, dan Tumapel|Dhoho]]
|-
|[[Stasiun Kediri|Kediri]]
|{{bus icon}} [[Bus SATRIA Kota Kediri|SATRIA]]
|[[Terminal Tamanan|Tamanan]]-[[Banjaran, Kota, Kediri|Banjaran]]
|-
|[[Stasiun Tulungagung|Tulungagung]]
| colspan="2" rowspan="9" |—
|-
| rowspan="2" |[[Stasiun Blitar|Blitar]]
|'''{{rint|surabaya|dh}} [[Commuter Line Dhoho, Penataran, dan Tumapel|Dhoho]]'''
|-
|'''{{rint|surabaya|pe}} [[Commuter Line Dhoho, Penataran, dan Tumapel|Penataran]]'''
|-
|[[Stasiun Wlingi|Wlingi]]
| rowspan="4" |{{rint|surabaya|pe}} [[Commuter Line Dhoho, Penataran, dan Tumapel|Penataran]]
|-
|[[Stasiun Sumberpucung|Sumberpucung]]
|-
|[[Stasiun Kepanjen|Kepanjen]]
|-
|[[Stasiun Malang Kotalama|Malang Kotalama]]
|-
| rowspan="2" |[[Stasiun Malang|Malang]]
|{{rint|surabaya|pe}} [[Commuter Line Dhoho, Penataran, dan Tumapel|Penataran]]
|-
|'''{{rint|surabaya|t}} [[Commuter Line Dhoho, Penataran, dan Tumapel|Tumapel]]'''
|}
;Catatan
{{notelist}}
== Insiden ==
|