500 likes | 1.17k Views
Pemrograman Terstruktur. Ruang Lingkup Mata Kuliah. Pemrograman Terstruktur. SKS/Semester : 2/4 Prasyarat : Struktur Data Sifat : Wajib Pustaka : Buku Pemrograman Terstruktur. Faraz Rasheed , C# School , Synchron Data S.L , 200 6 .
E N D
Pemrograman Terstruktur Ruang Lingkup Mata Kuliah
Pemrograman Terstruktur • SKS/Semester : 2/4 • Prasyarat : Struktur Data • Sifat : Wajib • Pustaka : • Buku Pemrograman Terstruktur. • Faraz Rasheed, C# School, Synchron Data S.L, 2006. • Thomas H. Cormen, Charles E.Leiserson, Ronald L. Rivest, Introduction to Algorithms, McGraw-Hill, 2003. • Jeri R. Hanlydan Elliot B. Koffman,“Overview of Computers and Programming”, Problem Solving and Program Design in C, Addison Wesley, 2002
TujuanPembelajaran • Mahasiswamemahamimetodologipengembangan software (analisis, design, coding, testing, dokumentasi) danmampumenerapkanmetodologitersebutpadapersoalan-persoalansederhana. • Mahasiswamampuberkomunikasidanbekerjasamadalamsebuahtimmelaluimekanismedokumentasi program. • Mahasiswamampumerancang program secara modular/terstrukturdenganmenggunakanfungsi-fungsi. • Mahasiswamampumerancangalgoritmedenganbenardanefisien, sertamampumelakukananalisiskompleksitasterhadapalgoritmetersebut. • Mahasiswamemahamielemen-elemenbahasapemrograman C danmampumengimplementasikanhasilrancangannyasecarabenar. • Mahasiswamampumenuangkanhasilpemikirannyadalambahasalisan maupun tulisan dengan baik.
KontrakPerkuliahan • Setiapmahasiswawajibmengikutiperaturanumum yang berlaku di lingkungan FST UTY seperti yang tercantumdalambukupanduan, misalnya: • Tidakdiperbolehkankuliahmemakaikaos dan sandal. • BerambutRapibagilaki-laki (tidakpanjang) • Berpakaian dan bertutur kata yang sopan. • Mahasiswahanyabolehmasukmaksimal 15 Menitsesudahdosenmasuk. • Kehadiran Minimal adalah 10x, jikakurang dari 10x makanilaimaksimal yang bisa didapatkanhanya « B » • Hal hal yang menyangkut kelancaran pembelajaran dapat ditentukan kemudian
ProsentasePenilaian • Absen 20% • UTS 20% • UAS 20% • Quiz 30% • Tugas10%
Komputer Elektronik • Elemensistemkomputerdikelompokkanmenjadi dua: • Hardware: peralatan yang digunakanuntukmelakukankomputasi, termasuk Central Processing Unit (CPU), monitor, keyboard, printer, dan lain-lain. • Software: program (kumpulaninstruksi) untukmenyelesaikanpermasalahandenganmenggunakankomputer. • Dulu, penyusunan program (programming) dilakukandenganmenyusuninstruksiberupaderetanbilanganbiner (0 dan 1). • Sekarang, programming dilakukandengancaralebihmudahdenganmenggunakanbahasapemrogramantingkattinggi, seperti Pascal, C, Basic, dan lain-lain.
Hardware Memori Sekunder Peralatan Output Peralatan Input Memori Utama Monitor Keyboard Central Processing Unit Mouse Monitor
Central Processing Unit (CPU) • CPU memiliki dua peran: • Mengkoordinasisemuaoperasikomputer • Untukmemproses program yang tersimpan di memori utama, CPU melakukanlangkah-langkahberikut: • menjemputrangkaianinstruksisesuaidenganurutannya • Menginterpretasikaninstruksidanmenentukanapasaja yang seharusnyadilakukan • Menjemput data jikadibutuhkan • Melakukanmanipulasiterhadap data denganoperasi yang sesuai. • Melakukanoperasiaritmetikadanlogika • Operasiaritmetikasepertipenambahan, pengurangan, perkalian, dll • Operasilogikasepertilebihbesar, lebihkecil, samadengan, dll.
Memory • Memori terdiriatasbanyak sel. Masing-masingselmemilikialamatdanisi. • Alamat: mengidentifikasilokasisetiapsel di dalammemori. • Isi: merepresentasikan data yang tersimpandalamselmemori. • Setiapselmemoriterdiriataskumpulan bit (bernilai 0 atau 1). Satuselmemoribisa menyimpan 8, 16 atau 32 bit, tergantungpada tipe komputer. • Penyimpanan data kedalammemoridilakukandenganmensetnilai 0 atau 1 kedalamsel-selmemori, sehinggamerusakisidariselmemorisebelumnya. • Pengambilan data darimemoridilakukandenganmenyalinpola 0 atau 1 dariselmemori, tanpamerusakisidariselmemorisebelumnya.
Memory • Dikenal 2 macam memori • Memori utama menyimpan baik program maupun data. Ada dua tipe memori utama: • Random Access Memori (RAM). • Menyimpan program dan data secarasementara, yaitupadasaat program dan data tersebutsedangdieksekusiolehkomputer. • Semua yang tersimpan di dalam RAM akanhilangpadasaatkomputerdimatikan. • Read-Only Memory (ROM). • Menyimpan program dan data secarapermanen. • Komputerhanyadapatmembacaisi ROM, tetapitidakdapatmenuliskanisibarukedalam ROM. • Isi ROM tidakakanhilangpadasaatkomputerdimatikan. • ROM biasanyadiisiolehpabrikkomputerdenganinstruksi start-up daninstruksikritis yang lain. • Memori sekundermemilikikemampuanpenyimpanan data secara semi permanen. Contoh: floppy disk, hard disk, flash disk, CD.
GambaranUmumBahasaPemrograman • Bahasapemrograman yang digunakanuntukmenulis program komputerdapatdikelompokkanmenjadi dua, yaitu: • Bahasamesin • Bahasatingkattinggi • Bahasapemrograman yang dimengertiolehkomputeradalahbahasamesin. Setiapinstruksibahasamesinterdiridarirangkaianbilanganbiner 0 dan 1. Sebagaicontoh, untukmerepresentasikanrumusberikut: Total_harga_barang = hargabarang + pajak Program bahasamesin yang harusditulisadalah: 0010 0000 0000 0100 0100 0000 0000 0101 0011 0000 0000 0110 Padacontohinstruksi di atas, baik jenisoperasi yang dilakukan maupun alamatdari data-data yang digunakan, semuadinyatakandalambilanganbiner. Bahasasepertiini, meskipunsangatmudahdipahamiolehkomputer, tetapisangatsulitdipahamiolehmanusia.
GambaranUmumBahasaPemrograman • Dalambahasatingkattinggi, instruksi-instruksi yang digunakanmiripdenganbahasa yang digunakanmanusiasehari-hari. Contohinstruksidalambahasatingkattinggi: Total_harga_barang = hargabarang + pajak; Instruksitersebutberarti “Menambahnilaiharga_barangdenganpajak, serta menyimpan hasilnya di dalamtotal_harga_barang”. Padacontoh di atas, jenisoperasi yang dilakukanditulisdengansimbol ‘+’, danalamatdari data yang digunakandinyatakandengannamadeskriptif (harga_barang, pajak, total_harga_barang). • Suatubahasatingkattinggimemiliki standard bahasa yang mendeskripsikanaturan (syntax) daribahasatersebut. Setiapinstruksi yang ditulismenggunakanbahasatingkattinggiharusmematuhi syntax yang telahditetapkan.
GambaranUmumBahasaPemrograman • Dalambahasatingkattinggi, instruksi-instruksi yang digunakanmiripdenganbahasa yang digunakanmanusiasehari-hari. Contohinstruksidalambahasatingkattinggi: Total_harga_barang = hargabarang + pajak; Instruksitersebutberarti “Menambahnilaiharga_barangdenganpajak, serta menyimpan hasilnya di dalamtotal_harga_barang”. Padacontoh di atas, jenisoperasi yang dilakukanditulisdengansimbol ‘+’, danalamatdari data yang digunakandinyatakandengannamadeskriptif (harga_barang, pajak, total_harga_barang). • Suatubahasatingkattinggimemiliki standard bahasa yang mendeskripsikanaturan (syntax) daribahasatersebut. Setiapinstruksi yang ditulismenggunakanbahasatingkattinggiharusmematuhi syntax yang telahditetapkan.
Revisi File Sumber File Sumber File Objek baru File Executable File Objek lain Program exe- cutable ada di memori Langkah-LangkahPenyiapanProgram Menulis program dan menyimpannya sebagai source file (file sumber) Compiler mentranslasi program Pembetulan syntax error Daftar kesalahan Linker menggabungkan file objek yang baru dengan file-file objek yang lain Loader menempatkan file executable ke dalam memori
Revisi File Sumber File Sumber File Objek baru File Executable File Objek lain Program exe- cutable ada di memori Langkah-LangkahPenyiapan Program Menggunakan program editor/pengolah kata Menulis program dan menyimpannya sebagai source file (file sumber) Compiler mentranslasi program Pembetulan syntax error Daftar kesalahan Linker menggabungkan file objek yang baru dengan file-file objek yang lain Loader menempatkan file executable ke dalam memori
Revisi File Sumber File Sumber File Objek baru File Executable File Objek lain Program exe- cutable ada di memori Langkah-LangkahPenyiapan Program Menulis program dan menyimpannya sebagai source file (file sumber) Menggunakan program compiler Compiler mentranslasi program Pembetulan syntax error Daftar kesalahan Linker menggabungkan file objek yang baru dengan file-file objek yang lain Loader menempatkan file executable ke dalam memori
Revisi File Sumber File Sumber File Objek baru File Executable File Objek lain Program exe- cutable ada di memori Langkah-LangkahPenyiapan Program Menulis program dan menyimpannya sebagai source file (file sumber) Menggunakan program editor/pengolah kata Compiler mentranslasi program Pembetulan syntax error Daftar kesalahan Linker menggabungkan file objek yang baru dengan file-file objek yang lain Loader menempatkan file executable ke dalam memori
Revisi File Sumber File Sumber File Objek baru File Executable File Objek lain Program exe- cutable ada di memori Langkah-LangkahPenyiapan Program Menulis program dan menyimpannya sebagai source file (file sumber) Menggunakan program compiler Compiler mentranslasi program Pembetulan syntax error Daftar kesalahan Linker menggabungkan file objek yang baru dengan file-file objek yang lain Loader menempatkan file executable ke dalam memori
Revisi File Sumber File Sumber File Objek baru File Executable File Objek lain Program exe- cutable ada di memori Langkah-LangkahPenyiapanProgram Menulis program dan menyimpannya sebagai source file (file sumber) Compiler mentranslasi program Pembetulan syntax error Daftar kesalahan Menggunakan program linker Linker menggabungkan file objek yang baru dengan file-file objek yang lain Loader menempatkan file executable ke dalam memori
Revisi File Sumber File Sumber File Objek baru File Executable File Objek lain Program exe- cutable ada di memori Langkah-LangkahPenyiapan Program Menulis program dan menyimpannya sebagai source file (file sumber) Compiler mentranslasi program Pembetulan syntax error Daftar kesalahan Linker menggabungkan file objek yang baru dengan file-file objek yang lain Menggunakan program loader Loader menempatkan file executable ke dalam memori
MetodePengembangan Software • Pemrogramanadalahsuatuaktifitaspemecahanmasalah. • Metodepemecahanmasalahdibahaspadaberbagaibidang, misalnya: • Di bidangbisnisdigunakanpendekatansistem • Di bidangteknikdansainsdigunakanmetodeteknikdansaintifik • Di bidangpemrogramandigunakanmetodepengembangan software • Langkah-langkahdalammetodepengembangan software: • Menspesifikankebutuhanmasalah • Menganalisismasalah • Merancang/mendesignalgoritmauntukmenyelesaikanmasalah • Mengimplementasikanalgoritma • Mentestdanmemverifikasi program • Memeliharadanmeng-update program
1. SpesifikasiMasalah • Kita harusdapatmenspesifikasikanmasalahdenganjelasdantidakambiguousdanmemilikipemahaman yang jelasmengenaiapa yang diperlukanuntukmenyelesaikanmasalahtersebut. • Kita harusdapatmengeliminasiaspek-aspek yang tidakpentingdarimasalah. • Dalamlangkahini, kitamungkinmembutuhkaninformasidari orang-orang yang terlibatdalammasalahtersebut.
2. Analisis • Kita harusdapatmengidentifikasimasalahberkaitandengan: • Input • Output • Kebutuhantambahanataubatasandaripenyelesaianmasalah • Format dari output (dalambentuktabel, file, atau yang lain) • Daftarvariabeldanhubunganantarvariabel (bisadinyatakandalamrumus) • Tips: Bacalah ‘problem statement’ (soal) denganhati-hati agar memilikipemahaman yang jelasmengenaipermasalahandan agar dapatmenentukan input maupun output denganbenar. Kita bisamenggarisbawahifrase di dalamsoal yang mengindikasikan input dan output.
2. Analisis • Contoh: Problem: Hitungdantampilkan total hargaapeljikajumlah kg apel yang dibelidanhargaperkgapeldiketahui. Analisis: Hitungdantampilkantotal hargaapeljikajumlah kg apel yang dibelidanhargaperkgapeldiketahui. Input: Jumlahapel yang dibeli (dalam kg) -> kg_beli Harga per kg apel (dalam rupiah) -> harga_kg Output: Total hargaapel (dalam rupiah) -> total Rumus : total = harga_kg x kg_beli • Proses pemodelansuatumasalahdengancaramengekstrakvariabel-variabelpentingdanhubungan di antaravariabel-variabeldisebutabstraksi.
3. Design • Dalamtahap design, kitamenyusunalgoritmadanmemverifikasiapakahalgoritma yang kitasusundapatmenyelesaikanmasalahsesuaidengan yang kitainginkan. • Gunakanpendekatan top down design yaitupendekatan yang dimulaidenganmendaftarlangkah-langkah utama atausubmasalah yang diperlukanuntukmenyelesaikanmasalah utama, selanjutnyadiikutidenganmenyusunpenyelesaianuntuksetiapsubmasalah. • Hampirsetiap algoritmakomputerterdiridarisubmasalahberikut: • Memasukkan data • Melakukanperhitungan • Menampilkanhasil • Proses penyusunanlangkah-langkahpenyelesaianuntuksetiapsubmasalah yang berhasildiidentifikasidisebutpenghalusanalgoritme (algorithm refinement). • Untukmemverifikasialgoritmedilakukan desk checking, yaitupemeriksaansetiaplangkahdalamalgoritmedengancaramensimulasikanhasileksekusialgoritmedenganperhitungan manual.
4. Implementasi • Pada tahap ini dilakukan penulisan program, yaitu mengkonversi algoritme yang disusun pada tahap sebelumnya ke dalam bahasa pemrograman yang dipilih.
5. Testing • Setelah program sudah bisa dieksekusi, dilakukan pengetesan program dengan berbagai macam data, sehingga bisa diverifikasi bahwa program sudah bekerja sesuai dengan kebutuhan pada berbagai situasi yang mungkin dihadapi oleh program.
6. Pemeliharaan (maintenance) • Pemeliharaan dan peng-update-an program mencakup modifikasi program untuk menghilangkan error yang sebelumnya tidak terdeteksi dan untuk menjaga agar program tetap up-to-date (sesuai) dengan kebijakan customer. • Beberapa instansi melakukan pemeliharaan program setiap 5 tahun sekali atau lebih, dan seringkali pemeliharaan program dilakukan oleh orang yang sebelumnya tidak terlibat dalam pengembangan program tersebut. • Oleh karena itu, sangat penting untuk melakukan dokumentasi terhadap setiap tahap pengembangan software, sehingga proses pemeliharaan program bisa dilakukan dengan baik.
Contoh kasus: Konversi Mil ke Kilometer • Problem : Dalam kerja praktek anda diminta untuk mempelajari beberapa peta. Peta-peta tersebut ada yang menggunakan satuan mil dan ada yang menggunakan satuan kilometer. Oleh pembimbing kerja praktek, anda diminta untuk mengkonversi semua jarak dalam mil ke dalam kilometer. • Analisis : “…. Oleh pembimbing kerja praktek, anda diminta untuk mengkonversi semua jarak dalam mil ke dalam kilometer.” Input : Jarak dalam mil -> mil Output : Jarak dalam kilometer -> km Rumus : 1 mil = 1.609 km
Contoh kasus: Konversi Mil ke Kilometer • Design : Algoritma awal : • Masukkan jarak dalam mil • Konversi jarak dari mil ke kilometer • Tampilkan hasil dalam kilometer Penghalusan algoritma : • Masukkan jarak dalam mil • Konversi jarak dari mil ke kilometer 2.1. Jarak dalam kilometer adalah 1.609 kali jarak dalam mil. 3. Tampilkan hasil dalam kilometer Contoh desk check terhadap algoritma : Pada langkah 1, dimasukkan jarak 10 mil, langkah 2.1 akan mengkonversinya menjadi 1.609 x 10 menjadi 16.09 kilometer. Hasil ini akan ditampilkan di langkah 3.
Contoh kasus: Konversi Mil ke Kilometer • Implementasi : using System; namespace KonversiMilkeKM { class Program { public static void Main(string[] args) { const double KmPerMil=1.609; Console.Write("Masukkan Jarak dalam Mil "); double jarak =System.Convert.ToDouble(Console.ReadLine()); double km = KmPerMil * jarak; Console.WriteLine("Jarak dalam kilometer adalah {0}", km); Console.ReadKey(true); } } } Contoh hasil runing program : Masukkan jarak dalam mil : 10.00 Hasil konversi adalah 16.09 kilometer
Contoh kasus: Konversi Mil ke Kilometer • Pengetesan Untuk memverifikasi bahwa program sudah berjalan sesuai dengan kebutuhan, cobalah mentest program dengan memasukkan beberapa jarak dalam mil yang lain • Studi Kasus : Suatu dealer minyak menampung minyak jualannya di dalam drum-drum. Sementara semua pembeli selalu membeli minyak dengan membawa wadah yang sama berupa jerigen. Pemilik dealer agak kesulitan untuk menghitung harga minyak yang dibeli oleh pembeli, karena pembeli selalu membeli minyak dengan satuan jerigen (misalnya 3 jerigen, atau 3.5 jerigen), sementara harga jual yang diketahui adalah rupiah per drum, yaitu 100.000 rupiah per drum. Diketahui bahwa 1 jerigen isinya sama dengan 1/20 drum. Bisakah anda membantu pemilik dealer untuk memudahkan perhitungan harga total minyak yang dijual ke setiap pembeli?