SEJARAH PERKEMBANGAN KOMPUTER DAN ALGORITMA

05 September 2023 23:16:36 Dibaca : 195

Nama                           : Triliana Biloa

NIM                              : 411422096

Prodi/Kelas                  : Pendidikan Matematika/A

Semester                     : III (Tiga)

Mata Kuliah                 : Komputasi dan Pemograman

Dosen Pengampu       : Agusyarif Rezka Nuha, S.Pd., M.Si

 

SEJARAH PERKEMBANGAN KOMPUTER

Zaman Pra-Komputer (Abad ke-19 dan Awal Abad ke-20): Perkembangan komputer dimulai dengan perangkat mekanis seperti mesin hitung Babbage dan Hollerith Tabulating Machine yang digunakan untuk mengolah data sensus.

Komputer Generasi Pertama (1940-an): Pada tahun 1940-an, komputer generasi pertama muncul, seperti ENIAC (Electronic Numerical Integrator and Computer). Mereka sangat besar, menggunakan tabung vakum, dan memiliki keterbatasan dalam hal kecepatan dan kapasitas.

Komputer Generasi Kedua (1950-an - 1960-an): Komputer generasi kedua menggunakan transistor daripada tabung vakum, yang membuatnya lebih kecil, lebih cepat, dan lebih andal. Pada masa ini, UNIVAC dan IBM memainkan peran penting dalam perkembangan komputer.

Komputer Generasi Ketiga (akhir 1960-an - awal 1970-an): Pengenalan sirkuit terpadu (IC) memungkinkan komputer menjadi lebih kecil dan lebih hemat energi. PDP-11 dan IBM 360 adalah contoh komputer generasi ketiga.

Komputer Generasi Keempat (akhir 1970-an - 1980-an): Mikroprosesor pertama muncul, dan komputer personal menjadi mungkin. Contoh komputer generasi keempat adalah Apple II dan IBM PC.

Komputer Generasi Kelima (akhir 1980-an hingga sekarang): Komputer saat ini, yang masih terus berkembang, telah mengalami peningkatan dramatis dalam hal kecepatan, kapasitas, dan koneksi internet. Komputer generasi kelima mencakup berbagai perangkat seperti PC, laptop, tablet, dan smartphone.

 

SEJARAH DAN PERKEMBANGAN ALGORITMA:

Algoritma Kuno: Algoritma sudah ada sejak zaman kuno, seperti algoritma Euclidean untuk menghitung FPB (Faktor Persekutuan Besar) pada abad ke-3 SM.

Algoritma pada Abad Pertengahan: Matematikawan seperti Al-Khwarizmi, yang namanya memberi kontribusi kepada kata "algoritma," menyusun metode penghitungan dan penyelesaian masalah pada Abad Pertengahan.

 Algoritma dalam Komputasi Awal: Matematikawan seperti Alan Turing mengembangkan konsep mesin Turing yang dapat dianggap sebagai prototipe komputer modern. Dia juga menulis tentang komputasi universal dan algoritma.

Pemrograman dan Algoritma pada Komputer Modern: Perkembangan bahasa pemrograman seperti Fortran, COBOL, dan C membantu dalam penulisan algoritma yang lebih efisien dan lebih mudah dipahami. Pada era komputer modern, algoritma juga berperan penting dalam pengembangan perangkat lunak dan kecerdasan buatan.

Perkembangan Algoritma Khusus: Beberapa algoritma khusus yang signifikan meliputi algoritma Dijkstra untuk pencarian jarak terpendek, algoritma RSA untuk kriptografi, dan algoritma PageRank yang digunakan oleh Google untuk mengurutkan hasil pencarian.

 

Latihan soal:

1.  Apa yang dimaksud dengan algoritma?

Jawab:

Algoritma adalah serangkaian langkah-langkah terstruktur yang dirancang untuk menyelesaikan masalah atau tugas tertentu. Algoritma adalah panduan sistematis yang mendefinisikan cara melakukan suatu pekerjaan atau mencapai suatu tujuan dengan jelas dan efisien. Algoritma digunakan di berbagai bidang, termasuk matematika, ilmu komputer, ilmu pengetahuan, pemrograman komputer, dan banyak lagi.

2.  Apa yang dimaksud dengan program?

Jawab:

Program adalah serangkaian instruksi atau perintah yang ditulis dalam bahasa pemrograman komputer untuk melakukan tugas atau operasi tertentu pada sebuah komputer. Program ini dapat berupa aplikasi perangkat lunak, skrip, atau bahkan bagian dari perangkat keras yang dikendalikan oleh perangkat lunak. Tujuan dari program adalah untuk mengatur perilaku komputer agar dapat melakukan tugas tertentu sesuai dengan kebutuhan pengguna.

3.  Sebutkan dan jelaskan dua macam kelompok besar program computer

Jawab:

a. Perangkat Lunak Sistem (System Software), adalah jenis program komputer yang dirancang untuk mengelola dan mengendalikan sumber daya perangkat keras komputer serta menyediakan layanan dasar yang diperlukan untuk menjalankan perangkat keras dan aplikasi perangkat lunak lainnya.  Perangkat lunak sistem melibatkan tugas-tugas seperti mengatur operasi dasar komputer, mengelola memori, mengendalikan perangkat keras seperti CPU, drive penyimpanan, dan perangkat input/output, serta menyediakan antarmuka antara pengguna dan perangkat keras komputer.

Contoh: Sistem operasi seperti Microsoft Windows, macOS, Linux, dan Android adalah contoh perangkat lunak sistem. Selain itu, perangkat lunak utilitas seperti driver perangkat keras, manajer file, dan program pemulihan sistem juga termasuk dalam kategori ini.

b. Perangkat Lunak Aplikasi (Application Software), adalah program komputer yang dirancang untuk memenuhi tugas-tugas atau keperluan tertentu pengguna. Mereka dibuat untuk berbagai tujuan, termasuk pengolahan data, komunikasi, hiburan, produktivitas, dan banyak lagi.Perangkat lunak aplikasi menyediakan fungsionalitas spesifik yang memungkinkan pengguna untuk menjalankan tugas tertentu sesuai kebutuhan mereka. Mereka berinteraksi dengan pengguna melalui antarmuka yang lebih terfokus.

Contoh:Beberapa contoh perangkat lunak aplikasi termasuk pengolah kata seperti Microsoft Word, spreadsheet seperti Microsoft Excel, peramban web seperti Google Chrome, perangkat lunak desain grafis seperti Adobe Photoshop, perangkat lunak email seperti Microsoft Outlook, dan permainan video.

4.  Apa yang dimaksud dengan bahasa pemrograman dan programmer?

Jawab:

Bahasa pemrograman adalah sekumpulan aturan dan sintaksis yang digunakan oleh programmer untuk menulis program komputer. Ini adalah cara komunikasi antara manusia (programmer) dan komputer, yang memungkinkan programmer untuk merancang, mengembangkan, dan menginstruksikan komputer untuk melakukan tugas tertentu. Sedangkan programmer adalah seseorang yang memiliki pengetahuan dan keterampilan untuk menulis, menguji, dan memelihara program komputer menggunakan bahasa pemrograman tertentu. Programmer adalah orang yang merancang solusi perangkat lunak dan mengimplementasikannya dalam bentuk kode komputer.

Dalam ringkasannya, bahasa pemrograman adalah alat yang digunakan oleh programmer untuk menulis program komputer, sedangkan programmer adalah individu yang menggunakan bahasa pemrograman tersebut untuk menciptakan perangkat lunak yang berfungsi. Hubungan antara keduanya memungkinkan pengembangan berbagai jenis perangkat lunak dan aplikasi komputer.

5.  Sebutkan dan jelaskan bahasa pemrograman berdasarkan fungsi kerja pada mesin komputer

Jawab:

a. Bahasa Pemrograman Tingkat Rendah (Low-Level Programming Language):Bahasa pemrograman tingkat rendah adalah bahasa yang lebih mendekati perangkat keras komputer dan memungkinkan programmer untuk memiliki kontrol yang lebih langsung terhadap sumber daya perangkat keras. Bahasa pemrograman tingkat rendah berfungsi sebagai antarmuka yang dekat dengan bahasa mesin komputer. Mereka memungkinkan programmer untuk mengendalikan perangkat keras dengan detail yang tinggi, termasuk memori, registri CPU, dan instruksi-instruksi perangkat keras yang mendasar.

Contoh dan Penggunaan: Bahasa Assembly dan bahasa mesin adalah contoh bahasa pemrograman tingkat rendah. Mereka biasanya digunakan dalam pengembangan perangkat keras, perangkat lunak yang sangat efisien dalam hal sumber daya, atau ketika pengendalian langsung perangkat keras diperlukan.

b. Bahasa Pemrograman Tingkat Tinggi (High-Level Programming Language): Bahasa pemrograman tingkat tinggi adalah bahasa yang lebih terfokus pada pengembangan perangkat lunak yang lebih mudah dibaca, dimengerti, dan dikembangkan oleh manusia. Mereka menyediakan abstraksi tingkat tinggi yang menjauhkan programmer dari kompleksitas perangkat keras. Bahasa pemrograman tingkat tinggi berfungsi sebagai alat untuk menyusun kode yang lebih terstruktur dan mudah dimengerti. Mereka menyediakan perintah-perintah yang lebih tingkat tinggi, seperti pengulangan, pemilihan, dan struktur data yang lebih kompleks, untuk memfasilitasi pengembangan perangkat lunak yang lebih efisien.

Contoh dan Penggunaan: Bahasa tingkat tinggi seperti Python, Java, C++, Ruby, dan banyak lagi digunakan dalam berbagai proyek pengembangan perangkat lunak, termasuk pengembangan aplikasi web, aplikasi umum, permainan video, analisis data, dan banyak lagi..

6.  Sebutkan dan jelaskan tiga konsep penyelesaian masalah dengan program

Jawab:

a. Algoritma: Algoritma adalah panduan untuk menyelesaikan masalah dengan menguraikan tindakan yang harus dilakukan secara sistematis. Algoritma harus memiliki langkah-langkah yang jelas dan dapat diikuti oleh komputer. Membuat algoritma yang efisien dan tepat adalah langkah awal dalam pengembangan perangkat lunak.

b. Pemrograman Terstruktur: Pemrograman terstruktur membantu dalam pemeliharaan kode yang lebih mudah dan memungkinkan pengembang untuk membagi masalah menjadi submasalah yang lebih kecil dan lebih mudah dikelola. Ini juga mengurangi redundansi dalam kode dan meningkatkan pembacaan dan pemahaman kode oleh manusia.

c. Pemecahan Masalah Berorientasi Objek (Object-Oriented Problem Solving): Dalam pemrograman berorientasi objek (OOP), masalah dipecah menjadi objek-objek yang memiliki atribut dan perilaku tertentu. Ini membantu dalam memodelkan dunia nyata ke dalam program komputer. OOP memungkinkan abstraksi yang kuat, penggunaan kembali kode (inheritance), dan pemisahan konsep (encapsulation), yang membuat pengembangan perangkat lunak lebih terstruktur dan mudah dikelola.

7.  Sebutkan dan jelaskantiga alas an menggunakan algoritma

Jawab:

a. Efisiensi: Salah satu alasan utama menggunakan algoritma adalah untuk mencapai efisiensi dalam pemrosesan data atau penyelesaian masalah. Algoritma yang dirancang dengan baik dapat memungkinkan komputer untuk mengeksekusi tugas dengan cepat dan dengan menggunakan sumber daya yang lebih sedikit. Ini sangat penting dalam komputasi modern di mana kinerja perangkat lunak seringkali menjadi faktor yang sangat berarti.

b. Ketepatan dan Konsistensi: Algoritma yang baik memiliki langkah-langkah yang jelas dan dapat diikuti dengan konsistensi. Mereka memastikan bahwa hasil yang diinginkan diperoleh setiap kali algoritma dijalankan, selama masukan yang sesuai diberikan. Ini sangat penting dalam konteks komputasi karena kesalahan atau ketidakkonsistenan dalam hasil dapat mengarah pada masalah serius.

c. Kemampuan Pemecahan Masalah yang Terdokumentasi: Algoritma memberikan cara sistematis untuk mendekomposisi masalah yang kompleks menjadi langkah-langkah yang lebih sederhana. Ini membuat proses pemecahan masalah lebih terdokumentasi dan dapat dimengerti oleh orang lain yang melihat atau bekerja dengan kode Anda. Ini juga memfasilitasi pemahaman dan pemeliharaan kode oleh pengembang yang berbeda atau di masa depan.

8.  Sebutkan manfaat dari penggunaan algoritma

Jawab:

a.  Efisiensi: Algoritma yang dirancang dengan baik dapat meningkatkan efisiensi pengolahan data dan penyelesaian masalah. Mereka memungkinkan komputer untuk mengeksekusi tugas dengan cepat dan menggunakan sumber daya yang lebih sedikit, seperti waktu komputasi dan memori.

b. Ketepatan: Algoritma membantu dalam mendapatkan hasil yang akurat dan konsisten. Mereka memastikan bahwa tugas yang dilakukan oleh komputer akan menghasilkan hasil yang benar setiap kali dengan memperhatikan masukan yang sesuai.

c. Reusabilitas: Algoritma yang baik dapat digunakan kembali dalam berbagai konteks. Ini memungkinkan pengembang untuk mengambil solusi yang telah ada dan menerapkannya dalam masalah serupa tanpa harus menulis ulang kode yang sama.

d. Pemahaman dan Dokumentasi: Algoritma memberikan pemahaman yang lebih baik tentang bagaimana suatu masalah diselesaikan. Mereka juga memberikan dokumentasi yang jelas dan sistematis tentang langkah-langkah yang diperlukan untuk menyelesaikan masalah tertentu. Hal ini memudahkan komunikasi antara pengembang dan tim, serta memudahkan pemeliharaan dan perbaikan kode di masa depan.

e. Pengukuran dan Pembandingan: Algoritma memungkinkan pengukuran kinerja yang obyektif dan pembandingan dengan solusi lain. Ini membantu dalam memilih pendekatan terbaik untuk menyelesaikan masalah dan mengevaluasi sejauh mana algoritma tersebut memenuhi kebutuhan.

f. Skalabilitas: Dengan merancang algoritma yang baik, Anda dapat mengembangkan solusi yang dapat dengan mudah disesuaikan dengan masalah yang lebih besar atau lebih kompleks. Ini membuat perangkat lunak Anda lebih mudah ditingkatkan seiring berjalannya waktu.

g. Peningkatan Produktivitas: Algoritma yang efisien dapat meningkatkan produktivitas pengguna dan organisasi. Ini berarti tugas-tugas dapat diselesaikan lebih cepat, yang dapat menghemat waktu dan biaya.

h. Kesalahan Minim: Dengan memerinci langkah-langkah dalam algoritma, Anda dapat mengidentifikasi dan memperbaiki kesalahan dengan lebih mudah. Hal ini membantu mengurangi risiko kesalahan yang tidak terdeteksi dalam perangkat lunak.

.