Von Neumann dan Komputer Program Tersimpan yang Memungkinkan Perangkat Lunak
Pelajari bagaimana gagasan program tersimpan—yang sering dikaitkan dengan John von Neumann—membuat perangkat lunak dapat digunakan ulang, memungkinkan komputer tujuan-umum, dan melahirkan pemrograman modern.

Mengapa Ide Program Tersimpan Penting
Di jantung komputasi modern ada pertanyaan sederhana: apa yang memungkinkan satu mesin melakukan banyak tugas berbeda tanpa dibangun ulang setiap kali? Komputer elektronik awal bisa menghitung dengan cepat, tetapi “mengganti pekerjaan” sering berarti mengubah pengaturan fisik mesin. Ide program tersimpan adalah titik balik yang membuat komputer benar-benar dapat diprogram.
Program tersimpan, dalam bahasa biasa
Sebuah komputer dengan program tersimpan menyimpan instruksi untuk sebuah tugas (program) di jenis memori internal yang sama dengan data yang diolah program itu. Alih-alih menyambung ulang perangkat keras atau mengatur panel secara manual, Anda dapat memuat kumpulan instruksi baru ke memori dan menjalankan tugas berbeda.
Sekarang ini terdengar jelas, tetapi ini adalah pergeseran mendasar:
- Komputer menjadi alat tujuan-umum, bukan mesin untuk satu tujuan saja.
- Program menjadi informasi—sesuatu yang bisa Anda sunting, simpan, salin, dan bagikan.
- Pengembangan perangkat lunak menjadi aktivitas praktis: menulis, menguji, dan memperbaiki instruksi tanpa membangun ulang mesin.
Apa yang akan dibahas artikel ini (dan mengapa masih relevan)
Ini bukan sekadar rasa ingin tahu sejarah. Konsep program tersimpan menjelaskan mengapa “perangkat lunak” ada sebagai hal yang terpisah dari “perangkat keras,” dan mengapa memperbarui sebuah perangkat hari ini bisa membuka fitur baru tanpa mengganti chip di dalamnya.
Di bagian berikutnya, kita akan menelusuri masalah yang dihadapi komputer awal, apa yang diubah pendekatan program tersimpan, orang-orang dan dokumen yang memperjelas ide itu (termasuk laporan EDVAC yang terkenal), serta bagaimana istilah “arsitektur von Neumann” menjadi representasi desain yang banyak dipakai.
Catatan singkat soal pengakuan kontribusi
Meskipun nama John von Neumann sangat terkait dengan komputasi program tersimpan, penghargaan dibagi di antara tim dan era yang lebih luas. Banyak peneliti sedang berkonvergensi pada ide serupa saat membangun komputer elektronik praktis pertama. Artikel ini menjaga konteks itu agar pembaca memahami bagaimana gagasan itu cepat menyebar dan menjadi model default bagi sebagian besar komputer berikutnya.
Sebelum Program Tersimpan: Ketika Mengubah Tugas Berarti Menyambung Ulang
Sebelum ide program tersimpan, banyak komputer awal tidak “menjalankan perangkat lunak” seperti yang kita maksud sekarang. Mereka mampu menghitung dengan kecepatan mengesankan, tetapi memberi tahu mereka apa yang harus dilakukan sering berarti mengubah mesin itu sendiri secara fisik.
“Pemrograman perangkat keras” dalam praktik
Pendekatan umum adalah menggunakan papan colokan, kabel sambungan, dan panel sakelar. Operator menghubungkan kabel antar soket, mengatur baris sakelar, dan kadang mengatur unit waktu sehingga sinyal tiba dalam urutan yang tepat. “Program” bukan berkas yang Anda muat—melainkan diagram sambungan sementara.
Pengaturan ini bekerja, tetapi membawa biaya tersembunyi: setiap tugas baru adalah proyek teknik mini. Jika Anda ingin mengubah urutan operasi (tambah, kali, banding, loop), Anda mungkin harus memindahkan puluhan atau ratusan sambungan. Satu kabel yang salah tempat bisa menciptakan kesalahan halus yang sulit didiagnosis, karena logika didistribusikan di sambungan perangkat keras alih-alih ditulis sebagai langkah yang dapat dibaca.
Mengapa mengganti tugas mahal
Mengonfigurasi ulang bisa memakan waktu berjam-jam atau berhari-hari, terutama jika mesin harus dimatikan dengan hati-hati, disambung ulang, dan diuji. Itu berarti fleksibilitas terbatas: mesin-mesin ini sering dijadwalkan untuk satu jenis perhitungan untuk waktu lama karena mengganti pekerjaan sangat mengganggu.
Contoh sederhana
Bayangkan sebuah mesin yang diatur untuk menghitung tabel balistik artileri—perhitungan panjang dan repetitif dengan rumus tetap. Jika peneliti kemudian ingin mesin yang sama menyelesaikan masalah berbeda, seperti menyusun hasil statistik sensus, itu bukan sekadar “sunting program dan jalankan lagi.” Urutan operasi, langkah penyimpanan sementara, dan pemeriksaan kondisional mungkin berbeda semuanya, sehingga memerlukan desain ulang papan colokan dan putaran verifikasi baru.
Dunia inilah yang ingin dilepaskan oleh komputer program tersimpan.
Komputer Program Tersimpan, Dijelaskan Secara Sederhana
Komputer program tersimpan adalah mesin di mana instruksi (program) berada di memori kerja yang sama dengan data yang digunakan program itu. Dengan kata lain, komputer tidak memperlakukan “apa yang harus dilakukan” sebagai sesuatu yang terpisah dari “apa yang dikerjakan”—keduanya disimpan sebagai pola bit di memori.
Apa arti “memori” di sini
Ketika pionir komputer awal berbicara tentang memori, mereka maksudkan penyimpanan internal cepat komputer—yang sekarang kita kaitkan paling dekat dengan RAM. Itu adalah tempat prosesor bisa membaca dan menulis dengan cepat saat berjalan.
Ini berbeda dari penyimpanan jangka panjang seperti hard drive atau SSD. Drive bagus untuk menyimpan berkas saat daya mati, tetapi bukan papan tulis langsung yang digunakan prosesor untuk mengambil instruksi berikutnya dan memperbarui hasil sementara.
Konsekuensi utama: mengganti tugas tanpa mengganti mesin
Begitu instruksi disimpan di memori, mengganti tugas menjadi jauh lebih sederhana: Anda bisa memuat program baru ke memori dan menjalankannya, tanpa membangun ulang, menyambung ulang, atau mengonfigurasi perangkat keras secara fisik. Mesin tujuan-umum yang sama bisa mengerjakan penggajian di pagi hari dan perhitungan balistik di sore hari—karena “bagaimana” pekerjaan dilakukan hanyalah kumpulan bit yang bisa Anda ganti.
Analogi sehari-hari
Bayangkan sebuah dapur di mana resep dan bahan disimpan bersama di pantri yang sama. Koki (prosesor) berulang kali mengambil dari pantri (memori) untuk membaca langkah resep berikutnya (instruksi) dan mengambil atau memperbarui bahan (data).
Ingin membuat hidangan lain? Anda tidak merenovasi dapur. Anda cukup mengganti resep—dengan menggunakan meja, oven, dan alat yang sama.
Peran John von Neumann (dan Mengapa Namanya Melekat)
John von Neumann tidak “menemukan komputer,” dan dia tidak sendirian menciptakan ide program tersimpan. Yang ia lakukan—dengan cemerlang—adalah membantu mengubah konsep yang menjanjikan menjadi desain yang dirumuskan dengan jelas dan dapat dibagikan sehingga insinyur dan lab lain bisa membangunnya.
Kontributor besar—dan komunikator yang efektif
Von Neumann terlibat dalam proyek komputasi masa perang dan pascaperang, memberi nasihat kepada tim dan merapikan struktur logis desain awal. Ia pandai menjelaskan pilihan teknis kompleks dengan cara yang teratur dan mudah dipahami, dan itu penting karena komputasi elektronik awal bergerak cepat dengan banyak kelompok memecahkan masalah serupa secara bersamaan.
Sama pentingnya, ia menulis dan menyebarkan penjelasan berpengaruh tentang bagaimana sebuah komputer bisa menyimpan instruksi program dalam memori yang sama yang dipakai untuk data. Pembingkaian yang jelas ini memudahkan orang lain untuk mendiskusikan, mengajar, dan mereplikasi pendekatan tersebut.
Mengapa namanya menempel pada arsitektur
Nama sering melekat bukan pada orang pertama yang punya ide, tetapi pada orang yang penjelasannya menjadi titik rujukan. Tulisan von Neumann banyak dibaca, disalin, dan disitasi—jadi pembaca berikutnya secara wajar mengaitkan organisasi “program tersimpan” dengannya.
Label ini juga menyederhanakan sejarah: lebih mudah mengatakan “arsitektur von Neumann” daripada menyebutkan setiap kontributor dan laporan. Namun singkatan itu bisa mengaburkan apa yang sebenarnya terjadi.
Upaya bersama, bukan terobosan tunggal
Komputasi elektronik awal adalah usaha kolaboratif yang melibatkan matematikawan, insinyur, dan programmer. Konsep program tersimpan matang melalui diskusi, draf, prototipe, dan revisi di lintas tim. Peran bertahan von Neumann adalah membantu mengkristalkan dan menyebarkan ide—mempercepat adopsinya—daripada membuatnya sendirian.
Laporan EDVAC dan Pernyataan Konsep yang Jelas
EDVAC (Electronic Discrete Variable Automatic Computer) adalah salah satu proyek komputer pascaperang awal yang bertujuan melampaui mesin “satu kali pakai”. Sepenting upaya perangkat keras adalah keputusan untuk menuliskan ide desain dalam bentuk yang jelas dan dapat dibagikan. Pada saat itu, pembangunan komputer masih dekat dengan rekayasa eksperimental—pengetahuan hidup di buku catatan lab, rapat, dan kepala beberapa spesialis. Sebuah laporan bisa mengubah wawasan-wawasan terpencar itu menjadi sesuatu yang dapat dibahas, dikritik, dan digunakan ulang oleh tim lain.
Apa yang dikatakan laporan EDVAC—tanpa matematikanya
First Draft of a Report on the EDVAC (sering disingkat "laporan EDVAC") menguraikan, dalam istilah konseptual yang jelas, ide program tersimpan: sebuah komputer harus menyimpan instruksi program dalam jenis memori internal yang sama dengan data. Memori itu bukan hanya tempat menyimpan angka sementara perhitungan berjalan—ia juga menyimpan langkah-langkah yang memberi tahu mesin apa yang harus dilakukan selanjutnya.
Pembingkaian ini membuat komputer terasa kurang seperti perangkat tujuan tetap dan lebih seperti mesin umum yang bisa “diberi tugas ulang” dengan mengubah apa yang ada di memori. Anda tidak menyambung ulang sistem untuk beralih dari satu tugas ke tugas lain; Anda memuat urutan instruksi yang berbeda.
Mengapa itu penting bagi orang lain
Selain konsep itu sendiri, laporan membantu menstandarkan cara orang berbicara tentang komputer: memori, kontrol, aritmetika, dan input/output sebagai bagian fungsional terpisah yang bekerja bersama. Memiliki kosa kata bersama dan deskripsi yang banyak dibaca tidak hanya menjelaskan EDVAC—itu memberi bidang yang lebih luas model mental umum untuk membangun, membandingkan, dan memperbaiki komputer program tersimpan.
Penghargaan Bersama: Tim di Balik Pemikiran Program Tersimpan Awal
Sulit menjawab “siapa yang menemukan komputer program tersimpan?” dengan satu nama. Ilmu pengetahuan dan teknik jarang bekerja seperti itu. Gagasan sering berkembang secara paralel, disempurnakan lewat diskusi, dan baru meyakinkan ketika didemonstrasikan dalam perangkat keras yang bekerja.
Kolaborator kunci dan upaya paralel
John von Neumann memang sangat terkait dengan konsep program tersimpan, tetapi kerja awal melibatkan banyak orang dan kelompok:
- J. Presper Eckert dan John Mauchly (karya ENIAC/EDVAC): sentral dalam dorongan teknik menuju komputer elektronik praktis dan desain yang lebih baik.
- Herman Goldstine: pengorganisir penting yang menjembatani matematikawan dan insinyur, serta figur kunci dalam mendokumentasikan dan menyebarkan ide.
- Arthur Burks: berkontribusi pada desain logis awal dan catatan kemudian tentang bagaimana arsitektur ini diformalkan.
- Alan Turing: menulis pemikiran berpengaruh sebelum EDVAC tentang komputasi tujuan-umum dan mesin yang dikontrol oleh program.
- Maurice Wilkes (EDSAC), dan Frederic Williams & Tom Kilburn (Manchester): membantu membuktikan bahwa sistem program tersimpan bisa dijalankan, dengan demonstrasi kerja awal dan kemajuan memori.
Mengapa “siapa yang menemukannya” rumit
Sebuah komputer program tersimpan bukan satu wawasan tunggal. Ia menggabungkan (1) lompatan konseptual bahwa instruksi bisa tinggal di memori seperti data, (2) teknik rekayasa untuk membangun memori dan unit kontrol yang andal, dan (3) praktik pemrograman yang membuat desain dapat dipakai. Berbagai orang berkontribusi pada bagian yang berbeda.
Mengusulkan vs. membangun
Satu alasan lain pengakuan dibagi: mengusulkan ide tidak sama dengan membangun mesin yang bekerja hari demi hari. Laporan awal dan diskusi membuat konsep lebih jelas; prototipe awal dan sistem produksi membuktikan bahwa itu layak. Sejarah yang hati-hati menghargai kedua jenis kontribusi itu—tanpa memaksakan verdict “penemu pertama” yang sederhana.
Apa yang Biasanya Dimaksud dengan “Arsitektur von Neumann”
Ketika orang mengatakan “arsitektur von Neumann,” biasanya mereka menunjuk model sederhana yang banyak diajarkan tentang bagaimana komputer program tersimpan diorganisasikan. Itu bukan merek atau satu mesin sejarah—itu label praktis untuk rencana dasar yang muncul, dalam satu bentuk atau lain, di banyak komputer.
Diagram blok umum: CPU, memori, dan I/O
Pada tingkat konseptual, gambarnya terlihat seperti ini:
- CPU (central processing unit): “pekerja” yang melakukan operasi.
- Memori: tempat komputer menyimpan baik instruksi program maupun data yang dipakai program.
- Input/Output (I/O): cara membawa informasi masuk dan keluar—keyboard, disk, layar, jaringan, sensor, dan seterusnya.
Ide utamanya adalah CPU tidak memiliki tempat fisik terpisah untuk “program” dibanding “angka.” Ia menarik semua yang dibutuhkan dari memori.
Bagaimana instruksi mengalir: ambil, dekode, eksekusi
CPU menjalankan program dengan mengulang sebuah loop yang sering digambarkan sebagai fetch–decode–execute:
- Fetch: baca instruksi berikutnya dari memori.
- Decode: tafsirkan apa yang diminta instruksi itu (tambah, banding, load, store, jump…).
- Execute: lakukan aksi, yang mungkin melibatkan membaca/menulis memori atau berinteraksi dengan I/O.
Deskripsi ini disederhanakan, tetapi menangkap inti: program adalah urutan instruksi yang tersimpan di memori, dan CPU menelusuri langkah-langkahnya.
Mengapa “instruksi dan data di memori yang sama” kuat
Meletakkan instruksi dan data dalam memori yang sama membuat komputer tujuan-umum dalam arti yang sangat praktis:
- Untuk mengubah apa mesin lakukan, Anda biasanya mengubah program di memori, bukan kabel.
- Program dapat memperlakukan instruksi sebagai informasi—menyalin, memuat, mengubahnya (meskipun sistem modern sering membatasi ini demi keamanan).
- Menjadi lebih mudah membangun alat seperti assembler, compiler, dan sistem operasi, karena “program” hanyalah jenis informasi yang tersimpan.
Label yang berguna, bukan klaim penemuan tunggal
Jadi “arsitektur von Neumann” lebih baik dipahami sebagai singkatan untuk model program tersimpan dengan CPU, memori bersama yang memegang instruksi dan data, dan I/O—sebuah ide yang sangat terkait dengan penjelasan jelas von Neumann, walau cerita awal melibatkan banyak kontributor.
Von Neumann vs. Harvard: Dua Cara Mengatur Instruksi dan Data
Orang sering membicarakan “von Neumann” dan “Harvard” seolah keduanya filosofi yang saling bersaing. Sebenarnya keduanya adalah dua cara praktis mengatur instruksi program dan data agar komputer dapat mengambil yang dibutuhkan.
Gaya von Neumann: satu memori, jalur bersama
Dalam desain bergaya von Neumann, instruksi dan data tinggal dalam memori yang sama dan biasanya lewat jalur utama yang sama ke CPU.
Itu sederhana secara konseptual: program hanyalah byte di memori, bersebelahan dengan angka, teks, dan gambar yang diolahnya. Ini juga membuat komputasi tujuan-umum lebih mudah—perangkat lunak dapat dimuat, diubah, dan disimpan menggunakan mekanisme yang sama seperti data.
Pertukarannya: ketika instruksi dan data berbagi “jalan,” mereka bisa bersaing untuk bandwidth. (Kadang Anda mendengar ini disebut “bottleneck,” tetapi ide intinya adalah berbagi.)
Gaya Harvard: penyimpanan terpisah (dan sering jalur terpisah)
Pendekatan Harvard memisahkan penyimpanan instruksi dari penyimpanan data, sering dengan jalur berbeda untuk mengambil masing‑masing.
Pemecahan ini bisa memudahkan pengambilan instruksi berikutnya sambil juga membaca/menulis data—berguna di sistem kecil dan dapat diprediksi. Contoh sederhana adalah banyak mikrokontroler, di mana kode program mungkin berada di flash sedangkan variabel berada di RAM.
Mengapa banyak sistem nyata mencampur keduanya
CPU modern sering terlihat “von Neumann” bagi perangkat lunak (satu ruang alamat, satu model program), sementara secara internal mengambil ide seperti Harvard. Contoh umum adalah cache instruksi dan cache data terpisah (I-cache dan D-cache). Bagi program Anda, tetap terasa seperti satu memori, tetapi perangkat keras bisa mengambil kode dan data lebih efisien.
Yang perlu diingat: tidak ada pemenang universal. Von Neumann menekankan kesederhanaan dan fleksibilitas; Harvard menekankan pemisahan dan throughput. Banyak mesin mencampur keduanya untuk menyeimbangkan pemrograman, biaya, daya, dan kecepatan.
Bagaimana Program Tersimpan Membuat Pemrograman Modern Mungkin
Komputer dengan program tersimpan tidak hanya menjalankan perhitungan—ia bisa memuat satu set instruksi dari memori, mengeksekusinya, lalu memuat set lain nanti. Pergeseran itu membuat perangkat lunak dapat digunakan ulang dan dibagikan: sebuah program bisa ditulis sekali, disimpan, disalin, ditingkatkan, dan didistribusikan tanpa menyentuh perangkat keras.
Dari “mesin ini” ke “setiap tugas”
Saat program ada di memori, mesin fisik yang sama bisa melakukan banyak pekerjaan berbeda cukup dengan menukar instruksi yang dibacanya. Itulah arti “tujuan-umum” yang sebenarnya: satu mesin, banyak program. Komputer tidak lagi didefinisikan oleh alur kerja tunggal; ia menjadi platform.
Contoh modern yang mudah dipahami adalah laptop Anda yang menjalankan email, permainan, dan spreadsheet. Di baliknya, ide yang sama: perangkat keras tetap, sementara program tersimpan yang berbeda dimuat dan dijalankan saat Anda mengganti aplikasi.
Mengapa ini memungkinkan alat pemrograman nyata
Begitu instruksi diperlakukan sebagai data dalam memori, menjadi praktis membangun lapisan perangkat lunak yang membantu Anda menulis perangkat lunak:
- Assembler membiarkan orang menulis mnemonic yang lebih mudah daripada kode numerik mentah.
- Compiler menerjemahkan bahasa tingkat tinggi menjadi instruksi mesin, memudahkan penulisan dan pemeliharaan program.
- Sistem operasi mengatur pemuatan program, berbagi memori dan perangkat, serta penjadwalan sehingga beberapa program dapat berjalan lancar.
Alat-alat ini bergantung pada asumsi bahwa program dapat disimpan, dipindahkan, dan dimanipulasi seperti informasi lain. Itulah yang membuat perangkat lunak menjadi ekosistem daripada artefak sekali pakai yang terikat pada pengkabelan tertentu.
Sebuah cara berguna melihat busur panjang: program tersimpan memungkinkan compiler dan OS, yang memungkinkan alat pengembang modern—dan hari ini kita melihat lapisan abstraksi lain di mana Anda bisa mendeskripsikan aplikasi dengan bahasa alami dan alat menghasilkan kode yang berjalan. Misalnya, Koder.ai adalah platform vibe-coding tempat Anda membangun aplikasi web, backend, atau mobile lewat antarmuka chat, memanfaatkan LLM dan workflow agen untuk mempercepat jalur dari niat (“apa yang harus dilakukan?”) ke instruksi yang dapat dieksekusi (kode sumber yang bisa Anda ekspor, deploy, dan rollback lewat snapshot).
Hasilnya tetap siklus kebajikan: program tersimpan membuat alat yang lebih baik menjadi mungkin, dan alat yang lebih baik membuat program yang lebih ambisius menjadi mungkin—mengubah komputer menjadi mesin tujuan-umum yang fleksibel.
Batas Terkenal: “Hambatan von Neumann”
Ide program tersimpan membuat komputer fleksibel, tetapi juga menyoroti batas praktis yang masih dibicarakan insinyur: “hambatan von Neumann.” Dalam istilah sehari-hari, ini seperti kemacetan lalu lintas di jalan antara CPU (pekerja) dan memori (gudang).
Kemacetan antara CPU dan memori
Dalam desain program tersimpan khas, baik instruksi maupun data tinggal di memori. CPU mengambil sebuah instruksi, lalu mengambil data yang dibutuhkan, lalu menulis hasil—sering di jalur yang sama. Jika jalur itu tidak bisa memindahkan informasi cukup cepat, CPU akan menunggu walau seharusnya bisa menghitung lebih cepat.
Mengapa kecepatan dan bandwidth penting
Dua faktor terkait membentuk hambatan ini:
- Latensi memori (kecepatan): berapa lama waktu yang dibutuhkan untuk mendapatkan potongan informasi pertama setelah memintanya.
- Bandwidth memori: berapa banyak informasi yang bisa dipindahkan per detik setelah transfer dimulai.
CPU mungkin bisa melakukan miliaran operasi per detik, tetapi jika memori tidak dapat memberikan aliran instruksi dan data yang stabil, kinerja dibatasi oleh langkah terlambat: mengambil byte.
Mitigasi umum (bukan solusi ajaib)
Ini adalah pertimbangan rekayasa yang luas, dan komputer modern menggunakan beberapa teknik untuk mengurangi dampaknya:
- Cache: memori kecil dan cepat dekat CPU yang menyimpan instruksi/data yang baru digunakan.
- Prefetching: menebak apa yang akan dibutuhkan selanjutnya dan memuatnya lebih awal.
- Paralelisme: melakukan lebih dari satu hal sekaligus (multi-core, tumpang tindih akses memori dengan komputasi).
Pendekatan ini tidak menghilangkan “jalan” dasar, tetapi membantu menjaga arus sehingga CPU lebih banyak bekerja dan lebih sedikit menunggu.
Di Mana Anda Melihat Ide Ini pada Komputer yang Anda Pakai Hari Ini
Konsep program tersimpan bukan barang museum—itulah cara komputasi sehari-hari tetap fleksibel. Perangkat Anda tidak perlu “disambung ulang” untuk melakukan sesuatu yang baru; mereka cukup memuat instruksi yang berbeda ke memori dan menjalankannya.
Ponsel, laptop, dan server: trik dasar yang sama
Di ponsel, mengetuk ikon aplikasi membuat sistem operasi memuat kode aplikasi itu dari penyimpanan ke memori, lalu CPU mengeksekusinya. Di laptop, hal yang sama terjadi ketika Anda membuka browser, mengedit dokumen, atau menjalankan game. Di server, terlihat lebih nyata: mesin bisa menjalankan ribuan beban kerja yang berubah—permintaan web, kueri basis data, pekerjaan latar—tanpa mengubah perangkat keras sama sekali.
Bahkan fitur yang kita anggap sebagai “seperti perangkat keras” sering kali didefinisikan perangkat lunak. Routing jaringan, jalur decoding video, peningkatan foto, dan kebijakan manajemen daya sering diperbarui melalui firmware dan perangkat lunak sistem—instruksi baru, perangkat yang sama.
Interpreter dan mesin virtual tetap menjalankan instruksi tersimpan
Bahasa seperti Python dan JavaScript biasanya berjalan melalui interpreter atau mesin virtual. Alih-alih CPU langsung mengeksekusi kode sumber Anda, program Anda diterjemahkan menjadi bentuk terstruktur (bytecode atau instruksi internal) yang disimpan di memori dan dijalankan langkah demi langkah. JVM Java, .NET, runtime WebAssembly, dan mesin JavaScript browser semua bergantung pada ini: instruksi menjadi struktur data yang dapat dimuat, dipindah, dan dieksekusi.
Catatan keamanan: ketika data berubah menjadi instruksi
Karena instruksi hanyalah informasi, serangan sering mencoba menyelinapkan kode berbahaya melalui data—injeks i kode klasik. Pertahanan seperti proteksi memori, penandatanganan kode, dan wilayah memori yang tidak eksekusi ada untuk mencegah data yang tidak tepercaya diperlakukan sebagai instruksi yang dapat dijalankan.
Semua ini kembali ke janji sentral program tersimpan: fleksibilitas melalui perangkat lunak—perilaku baru pada perangkat keras yang sama.
Poin Penting dan Bacaan Berikutnya yang Disarankan
Poin penting
- Komputer program tersimpan menyimpan instruksi program di jenis memori baca/tulis yang sama dengan data, sehingga Anda bisa mengubah apa yang mesin lakukan dengan mengubah memori—bukan dengan menyambung ulang perangkat keras.
- Label “arsitektur von Neumann” biasanya menunjuk pada organisasi praktis (CPU + memori + input/output) di mana instruksi dan data berbagi jalur, bukan klaim bahwa satu orang menemukan semuanya.
- Pemikiran awal tentang program tersimpan adalah kerja tim: diskusi dan laporan EDVAC membantu merumuskan ide, dan berbagai proyek menunjukkan cara membangunnya dan mengoperasikannya secara andal.
- Program tersimpan memungkinkan pemrograman modern karena mendukung kode yang dapat digunakan ulang, pustaka, compiler, dan sistem operasi, semua dibangun atas asumsi bahwa perangkat lunak adalah data yang bisa dimuat dan dijalankan mesin.
Pertanyaan cepat untuk mengenali sebuah arsitektur
Saat melihat sebuah komputer (atau membaca spesifikasi), pertanyaan-pertanyaan ini membantu mengenali model dasarnya:
- Di mana instruksi disimpan saat runtime: di memori yang sama dengan data, atau memori instruksi terpisah?
- Apakah instruksi dan data melewati bus/jalur yang sama, atau ada jalur terpisah (umum pada desain bergaya Harvard)?
- Bisakah sistem memodifikasi atau menghasilkan kode lalu mengeksekusinya (kapabilitas klasik program tersimpan), atau penyimpanan kode bersifat tetap/terisolasi?
- Apakah “memori program” dijelaskan sebagai flash/ROM sementara “memori data” adalah RAM (pertanda pemisahan bergaya Harvard pada banyak mikrokontroler)?
Bacaan selanjutnya yang disarankan
- Buku: The Computer from Pascal to von Neumann (Herman H. Goldstine); survei sejarah komputer umum yang membahas ENIAC/EDVAC/IAS.
- Museum: Computer History Museum; Science Museum (koleksi komputasi); Smithsonian (sejarah teknologi).
- Arsip dan jurnal: artikel sejarah IEEE dan ACM (termasuk sejarah lisan), plus koleksi perpustakaan universitas yang menyimpan makalah komputasi awal.
Jika Anda ingin lebih banyak tulisan bersahabat seperti ini, jelajahi /blog.
Catatan: Jika Anda bereksperimen dengan cara modern mengubah “instruksi” menjadi sistem yang berjalan—baik dengan menulis kode langsung atau menggunakan platform build berbasis chat seperti Koder.ai—pertimbangkan untuk mendokumentasikan apa yang Anda pelajari. Koder.ai juga menawarkan program earn-credits untuk konten yang dipublikasikan dan referal, yang bisa menjadi cara praktis mendanai lebih banyak eksperimen dan tutorial.
Pertanyaan umum
Apa itu komputer program tersimpan, dalam istilah sederhana?
Komputer dengan program tersimpan menyimpan instruksi program dalam memori internal yang sama dengan data yang diproses instruksi tersebut. Untuk mengganti tugas, Anda memuat kumpulan instruksi yang berbeda ke memori alih-alih mengubah sambungan atau konfigurasi perangkat keras secara fisik.
Bagaimana komputer awal “diprogram” sebelum adanya program tersimpan?
Sebelum ide program tersimpan, banyak mesin “diprogram” menggunakan papan colokan (plugboard), kabel sambungan, dan pengaturan sakelar. Mengubah urutan operasi bisa memakan waktu berjam-jam atau berhari-hari untuk menyambung ulang dan menguji kembali, dan satu sambungan yang salah bisa memperkenalkan kesalahan yang sulit ditemukan.
Apa yang dimaksud dengan “memori” dalam ide program tersimpan (dan bagaimana berbeda dari penyimpanan)?
Dalam konteks ini, “memori” berarti penyimpanan kerja cepat komputer (yang paling mirip dengan RAM modern) yang dapat dibaca dan ditulis CPU saat berjalan. Ini berbeda dari penyimpanan jangka panjang (seperti disk/SSD), yang digunakan untuk menyimpan program dan berkas saat daya mati.
Mengapa laporan EDVAC begitu penting bagi konsep program tersimpan?
Laporan EDVAC menjelaskan secara jelas organisasi di mana instruksi dan data berbagi memori internal yang sama, serta memberikan kosakata yang berguna untuk membicarakan bagian-bagian komputer (memori, kontrol, aritmetika, input/output). Kejelasan ini memudahkan tim lain untuk berdiskusi, membandingkan, dan membangun sistem serupa lebih cepat.
Apakah John von Neumann menemukan komputer program tersimpan sendiri?
Nama von Neumann melekat sebagian besar karena deskripsinya dibaca dan disitasi secara luas, bukan karena dia satu-satunya kontributor. Pendekatan program tersimpan berkembang dari komunitas yang lebih luas (insinyur, matematikawan, dan programmer awal) yang mengerjakan masalah serupa pada waktu yang sama.
Apa arti “arsitektur von Neumann” biasanya hari ini?
"Arsitektur von Neumann" umumnya merujuk pada model dengan:
- sebuah CPU yang menjalankan siklus fetch–decode–execute
- sebuah memori tunggal yang menyimpan instruksi dan data
- perangkat input/output
Ini adalah label pengajaran yang praktis untuk organisasi program tersimpan, bukan klaim tentang satu mesin historis atau penemu tunggal.
Apa perbedaan antara arsitektur von Neumann dan Harvard?
Dalam desain bergaya von Neumann, instruksi dan data berbagi satu memori (seringkali satu jalur utama ke CPU). Dalam desain Harvard, penyimpanan instruksi dipisahkan dari penyimpanan data (sering dengan jalur terpisah).
Banyak sistem modern menggabungkan keduanya—misalnya satu model alamat ke perangkat lunak, tetapi cache instruksi dan data terpisah secara internal.
Apa itu hambatan von Neumann, dan bagaimana komputer menguranginya?
“Hambatan von Neumann” adalah batas kinerja yang muncul ketika CPU dan memori berbagi jalur terbatas untuk memindahkan instruksi dan data. Mitigasi umum meliputi cache, prefetching, dan paralelisme (misalnya banyak core), yang mengurangi waktu tunggu tetapi tidak menghilangkan batasan dasar.
Bagaimana ide program tersimpan menjelaskan pembaruan perangkat lunak dan pergantian aplikasi di perangkat modern?
Karena program hanyalah informasi yang dapat dimuat ke memori, Anda bisa mengubah perilaku dengan mengganti perangkat lunak tanpa mengganti chip. Itulah sebabnya ponsel atau laptop yang sama dapat menjalankan banyak aplikasi, dan pembaruan firmware/OS bisa menambah fitur tanpa merancang ulang perangkat keras.
Mengapa “instruksi sebagai data” penting untuk keamanan?
Karena instruksi direpresentasikan sebagai data di memori, penyerang kadang mencoba menyelundupkan kode berbahaya melalui data — misalnya injeksi kode. Pertahanan modern termasuk proteksi memori (wilayah non-eksekusi), penandatanganan kode, dan kontrol lain yang memisahkan “data yang boleh dibaca” dari “kode yang boleh dijalankan.”