Apa Itu Program — Hubungannya dengan CPU, Memori, dan Penyimpanan

Artikel ini adalah bagian dari kursus Dasar-Dasar Teknologi Informasi, yang membangun dari nol pengetahuan TI praktis yang minimal kamu butuhkan untuk memprogram dan melakukan vibe coding.
Program adalah rangkaian instruksi, dan ketika kamu menjalankannya, program itu dimuat ke memori lalu CPU mengerjakan instruksinya satu per satu. Diagram menunjukkan mengapa menyimpan saja tidak menjalankannya, dimulai dari cara ketiga bagian ini membagi tugas.

Artikel ini membahas apa yang terjadi di dalam komputer ketika sebuah program berjalan.

Menyimpan file dan menjalankannya adalah dua peristiwa yang berbeda di dalam komputer.

Perbedaannya bisa dijelaskan lewat tugas masing-masing dari 3 bagian: CPU, memori, dan penyimpanan.

  • Program adalah rangkaian instruksi, dan saat dijalankan, prosesnya bergerak satu baris demi satu baris dari atas
  • Cara CPU, memori, dan penyimpanan membagi tugas, serta apa yang hilang ketika daya dimatikan
  • Mengapa menyimpan saja tidak menjalankannya — tulisannya berhenti di penyimpanan
  • Apa yang diserahkan kepada runtime oleh "jalankan ini" dalam sebuah langkah

Program adalah deretan instruksi, dan saat dijalankan prosesnya bergerak dari atas

Program (program) adalah kumpulan instruksi untuk dikerjakan komputer, disusun sesuai urutan pengerjaannya.

Teks yang bisa dibaca manusia itu adalah source code, dan mengerjakannya satu instruksi demi satu instruksi dari atas disebut menjalankan (run / execute).

Tiga baris di sisi kiri diagram adalah isi app.js, dan CPU selalu hanya menerima satu baris pada satu waktu.

Baris yang hanya mengingat sebuah nilai tidak menampilkan apa pun di layar.

Ketika baris ketiga selesai, jalannya program pun berakhir, dan nilai yang diingat di tengah jalan tidak tersisa.

Kalau sebuah instruksi di tengah tidak bisa dikerjakan, jalannya berakhir di situ.

Pada tiga baris berikut, nama gokei di tengah tidak ditulis di mana pun.

console.log("Menampilkan totalnya");
gokei();
console.log("Selesai");

"Berhenti karena error" berarti jalannya berakhir sebelum sampai ke baris terakhir.

Baris pertama tetap muncul di layar, baris tengah memunculkan teks error, dan baris terakhir berakhir tanpa pernah dibaca.

Program adalah rangkaian instruksi yang dikerjakan dari atas

Program adalah hal yang ingin kamu kerjakan, ditulis berurutan.

Menjalankannya berarti mengerjakan rangkaian itu satu per satu dari atas, dan kalau sebuah baris di tengah tidak bisa dikerjakan, baris-baris sesudahnya berakhir tanpa pernah dibaca.

Apa tugas masing-masing dari CPU, memori, dan penyimpanan

"Komputer" pada diagram sebelumnya terdiri dari tiga bagian dengan peran yang berbeda.

CPU (Central Processing Unit) mengerjakan instruksi satu per satu, memori (memory) menyimpan isinya hanya selama sesuatu sedang berjalan, dan penyimpanan (storage) tetap menyimpannya walaupun daya dimatikan.

Cara CPU, memori, dan penyimpanan membagi tugas
CPUprocessorMemoriRAMPenyimpananSSD / diskMembaca instruksisatu per satuMenaruh yang jalandan nilai sementaraTempat filedisimpanTidak ada sisaHilangTetap ada"Memori kurang"ada di sini"Ruang kurang"ada di sini
Kiri adalah bagiannya, tengah adalah tugasnya, dan kanan adalah apakah isinya tetap ada ketika daya dimatikan. Kolom paling kanan adalah petunjuk untuk membaca pesan peringatan.
Satu file terpecah menjadi instruksi dan sampai ke CPU satu per satu
app.js dipenyimpananInstruksi baris 1Instruksi baris 2Instruksi baris 3CPU jalankansatu per satuMemori
app.js di penyimpanan pada sisi kiri adalah satu file. Begitu dimuat ke memori, file itu terpecah menjadi instruksi-instruksi di dalamnya, dan CPU di sisi kanan menerimanya satu per satu dari atas.

Satu file di penyimpanan menjadi rangkaian instruksi di dalam memori, dan CPU hanya menerima satu di antaranya pada satu waktu.

Nilai dari tengah sebuah perhitungan juga berada di memori, dan file di penyimpanan tidak ditulis ulang selama program berjalan.

Ketiga bagian itu terbagi di dalam satu komputer seperti berikut.

Tiga bagian di dalam komputer kamu sendiri
Komputer kamu
Penyimpanan
  • File app.js yang kamu simpan
  • Tetap ada apa adanya walaupun daya dimatikan
Memori
  • Isi app.js yang dimuat
  • Nilai yang diingat di tengah jalan, seperti 150 dan 200
  • Semuanya hilang ketika daya dimatikan
CPU
  • Hanya menerima satu instruksi yang sedang dikerjakannya
  • Ia tidak lagi memegang instruksi yang sudah selesai
Sisi luar adalah komputer kamu sendiri. File yang kamu simpan tetap ada di penyimpanan, sedangkan memori hanya memuat apa yang sedang berjalan sekarang.

Yang berpindah hanyalah isinya; app.js di penyimpanan itu sendiri tetap di tempatnya.

Yang masuk ke memori hanyalah apa yang sedang berjalan sekarang dan nilai dari tengah jalannya.

Pembedaan ini juga muncul dalam cara kamu membaca peringatan yang dikeluarkan komputer.

"Memori tidak cukup" berbicara tentang memori, jadi menghapus file biasanya tidak menambahnya.

"Ruang penyimpanan tidak cukup" berbicara tentang penyimpanan, dan menghapus file memang membebaskannya.

Tempat menyimpan dan tempat menjalankan itu berbeda

Penyimpanan adalah tempat file disimpan, memori adalah tempat menaruh apa yang sedang berjalan sekarang, dan CPU adalah yang mengerjakan instruksi-instruksi itu satu per satu.

Apa yang kamu tulis ke penyimpanan tetap ada ketika daya dimatikan, dan apa yang berada di memori hilang.

Mengapa menyimpan file saja tidak membuatnya berjalan

Menyimpan berarti menulis karakter-karakter source code ke penyimpanan.

Semuanya ditulis ke dalam folder my-app, aplikasi reservasi yang sedang kamu bangun.

Ke bagian mana dari penyimpanan sebuah file masuk ketika kamu menyimpannya
Penyimpanan
my-app (folder aplikasi reservasi yang sedang kamu bangun)
  • app.js — source code yang kamu simpan
  • Menyimpan lagi akan mengubah isi file ini
Folder lainnya
  • File foto dan dokumen
  • File yang tidak dijalankan pun berada di sana apa adanya
Sisi luar adalah penyimpanan. my-app adalah folder aplikasi reservasi yang sedang kamu bangun, dan app.js yang kamu simpan masuk ke dalamnya.

CPU tidak pernah datang sendiri membaca file yang diletakkan di sini.

Ketika kamu baru menyimpan saja, belum satu pun instruksi dikerjakan.

LangkahPenyimpananMemoriLayar
Hanya menyimpanapp.js ditulisTidak ada yang masukTidak ada yang muncul
Menyimpan lalu menjalankanapp.js tidak berubahDimuat dan mulai berjalan350 muncul

Baris yang hanya menyimpan berhenti di penyimpanan, dan karena tidak ada yang masuk ke memori, CPU sama sekali tidak menerima instruksi.

Tidak ada yang terjadi di layar karena kamu belum memerintahkannya berjalan.

Ketika kamu menjalankannya lagi, isi memori yang lama dibuang dan file yang baru dimuat.

Apa yang kamu perbaiki berjalan pada saat pemuatan ulang itu terjadi.

Inilah alasan sebuah langkah menyuruh kamu menjalankannya lagi.

Menyimpan bukan berarti langsung berlaku

Menyimpan hanya sampai menulis karakter-karakternya ke penyimpanan.

Program yang sedang berjalan terus memakai isi sebagaimana adanya saat ia dimuat, jadi walaupun kamu memperbaiki filenya, hasil di layar tidak berubah sampai kamu menjalankannya lagi.

"Jalankan ini" berarti menyerahkan sebuah file kepada runtime

Runtime (runtime, yaitu software yang membaca source code dan menyuruh CPU mengerjakan instruksinya) adalah yang memuat file ke memori dan mengantarkan instruksinya ke CPU.

"Jalankan ini" dalam sebuah langkah berarti menyerahkan file kepada runtime ini.

Yang kamu ketik sendiri hanyalah satu baris di paling kiri.

Satu baris itu muncul di dalam sebuah langkah dalam bentuk seperti ini.

# Menjalankan source code JavaScript (Node.js)
node app.js

# Menjalankan source code Python
python app.py

Satu baris ini adalah perintah (command, yaitu instruksi berupa teks yang memberi tahu software apa yang harus dilakukan).

Bagian depannya adalah nama runtime dan yang mengikutinya adalah nama file source code, dipisahkan oleh spasi.

Isi dari satu baris perintah
Satu baris perintah (node app.js)
Bagian depan — nama runtime
  • node — membaca source code JavaScript
  • python — membaca source code Python
Yang mengikutinya — file yang kamu serahkan
  • app.js — nama file source code yang kamu simpan
  • Runtime memuat file ini dari penyimpanan
  • Kadang nama pendek yang sudah ditentukan ditulis menggantikan nama filenya
Sisi luar adalah satu baris perintah, dan dua bagian di dalamnya adalah bagian depan dan yang mengikutinya. Perintah yang muncul di sebuah langkah bisa dibaca dengan memilahnya menjadi dua bagian ini.

Bagian depannya memberi tahu runtime mana yang dibutuhkan, dan yang mengikutinya memberi tahu file mana yang dimuat.

Layar tempat kamu mengetik baris ini dibahas di artikel kursus ini yang berjudul "Apa Itu Lingkungan Pengembangan".

Walaupun bahasanya berubah, cara membacanya tetap sama: bagian depan adalah software yang menerimanya, dan yang mengikutinya adalah apa yang kamu serahkan kepadanya.

Ada satu tempat lagi di mana kalimat langkahnya berbeda.

Cara berakhirnya setelah kamu memerintahkannya berjalan terbagi menjadi 2.

Setelah kamu memerintahkannya berjalan, ada 2 cara ia berakhir
Perintah untukmenjalankanJalan sampaibaris terakhirHasil muncul,kembali ke promptAda instruksi yangterus menungguTidak berakhirsampai dihentikan
Satu perintah terbagi menjadi cabang atas dan cabang bawah. Cabang atas adalah program yang berakhir di baris terakhir, dan cabang bawah adalah program yang tidak berakhir sampai kamu menghentikannya.

Cabang bawah adalah program yang di panduannya tertulis "biarkan tetap berjalan".

Ada juga runtime yang memuat ulang filenya secara otomatis setiap kali kamu menyimpan.

Meski begitu, layarnya baru berubah setelah file yang baru dimuat.

Memerintahkan menjalankan berarti menyerahkan sebuah file

"Jalankan ini" berarti serahkan filenya kepada software yang disebut runtime.

Kamu menyerahkannya lewat satu baris seperti node app.js, dan ada program yang berjalan sampai baris terakhir lalu berakhir, ada pula yang tidak berakhir sampai kamu menghentikannya.

QUIZ

Cek Pemahaman

Jawab setiap pertanyaan satu per satu.

Soal 1Ketika kamu baru menyimpan source code saja, file itu berada di bagian yang mana?

Soal 2Apa yang dilakukan komputer ketika ia "menjalankan sebuah program"?

Soal 3Pada perintah node app.js, node di bagian depan itu merujuk pada apa?