Hal 1 dari 5 JAWABAN TUGAS 5 PEMROGRAMAN TEKNIK 1.
Apa keuntungan dan apa batasan tipe data ARRAY? Keuntungan tipe data arrray (larik) adalah bisa menyimpan >=1 elemen data dalam satu variabel. Batasannya adalah bahwa tipe elemen data dalam array haruslah bertipe sama (homogen) dan jumlah elemennya terbatas sesuai dengan deklarasi batas bawah (lower-limit) dan batas ata (upper-limit) dari array.
2.
Kembangkan suatu program yang dapat dipergunakan untuk melakukan perhitungan hambatan total (total resistance) dari sebanyak n resistor (tahanan) yang dirangkai secara serial ATAU paralel (hanya satu pilihan). Ingat satuan nilai dari suatu resistor adalah “ohm”. Semua nilai resistor yang akan dihitung harus dibaca dahulu dari user dan disimpan dalam variabel array bernama Resistor. Program harus memberi pilihan apakah resistor akan dirangkai serial atau paralel. Program selain mengeluarkan nilai hambatan total juga harus dapat mengeluarkan pesan-pesan yang relevan seperti pesan kesalahan, pesan konfirmasi, atau yang lain. Kemudian program bisa memberikan kesempatan bagi user untuk menghitung lagi atau tidak. Dan program tsb harus dibuat dengan minimal 4 sub-program berupa FUNCTION. Fungsi pertama digunakan untuk menanyakan kepada user berapa jumlah tahanan (n) yang akan dijumlahkan. Fungsi kedua menanyakan apakah tahanan akan dirangkai secara serial atau paralel. Fungsi ketiga dipakai menghitung total tahan seri dan fungsi keempat dipakai untuk menghitung total tahanan paralel. CATATAN: harus ada deklarasi variabel! CONST MAXSIZE = 100 DIM n AS INTEGER, Rangkai AS STRING DIM i AS INTEGER DIM Rtotal AS SINGLE DIM HitungLagi AS STRING DIM R (1 TO MAXSIZE) AS SINGLE DECLARE FUNCTION BacaJumlahResistor DECLARE FUNCTION BacaPilihanRangkaian DECLARE FUNCTION HitungNilaiSerial (n) DECLARE FUNCTION HitungNilaiParalel (n)
Hal 2 dari 5 CLS YY: n = BacaJumlahResistor IF (n >0 AND <= MAXZISE) THEN FOR i = 1 TO n INPUT “Masukkan nilai resistor ke “; i ; “:”; R(i) NEXT i Rangkai = BacaPilihanRangkaian IF Rangkai = “S” THEN Rtotal = HitungNilaiSerial (n) IF Rtotal <= 0 THEN PRINT “Nilai R invalid” GO TO XX END IF ELSEIF Rangkai =”P” THEN Rtotal = HitungNilaiParalel (n) IF Rtotal <= 0 THEN PRINT “Nilai R invalid” GO TO XX END IF END IF PRINT “Nilai resistor total adalah: “; Rtotal ELSE PRINT “Nilai n harus > 0 dan <=”; MAXSIZE END IF XX: INPUT “Apakah mau hitung lagi (y/t)?”; HitungLagi IF HitungLagi = “y” THEN GOTO YY END IF END FUNCTION BacaJumlahResistor DIM k AS INTEGER INPUT “Masukkan jumlah resistor yang dirangkai!:”; k BacaJumlahResistor = k END FUNCTION FUNCTION BacaPilihanRangkaian DIM rangkaian AS STRING INPUT “Masukan S jika dirangkai serial dan P jika dirangkai paralel!:”; rangkaian BacaPilihanRangkaian = rangkaian END FUNCTION FUNCTION HitungNilaiSerial (nResistor) DIM Rs AS SINGLE DIM k AS INTEGER Rs = 0 FOR k = 1 TO nResistor
Hal 3 dari 5 INPUT “Masukkan nilai resistor!: “; R IF R(k) > 0 THEN RS = Rs + R(k) ELSE Rs = 0 GO TO WW END IF NEXT k WW: HitungNilaiSerial = Rs END FUNCTION FUNCTION HitungNilaiParalel (nResistor) DIM IRp AS SINGLE DIM k AS INTEGER IRp= 0 FOR k = 1 TO nResistor INPUT “Masukkan nilai resistor!: “; R IF R(k) > 0 THEN IRp = IRp + 1/R(k) ELSE IRp = 0 GO TO ZZ END IF NEXT k ZZ: IF Rp > 0 THEN HitungNilaiParalel = 1/IRp ELSE HitungNilaiParalel = 0 END IF END FUNCTION
3.
Buat dokumen analisis program perkalian matrik A dan B dan hasilnya disimpan sebagai matrik C yang berukuran 5x5. Matrik A, B, dan C disimpan dalam variabel ARRAY dengan nama MA, MB, dan MC. Nilai matriks A dan B diinput via keyboard oleh user. Program harus bisa mencetak nilai matriks A, B dan C sebagai hasil akhir. Dari dokumen analsis harus terlihat jelas bagaimana anda memahami komputasi perkalian dua buah matriks dan tunjukkan persamaan matematiknya.
Hal 4 dari 5
Hal 5 dari 5 4.
Buat dokumen desain dalam bentuk pseudocode untuk algoritma dari hasil analisis jawaban anada pada soal no 3. MULAI UNTUK i= 1 KE 5 UNTUK j=1 KE 5 BACA A(i,j) AKHIR j AKHIR i UNTUK i= 1 KE 5 UNTUK j=1 KE 5 BACA B(i,j) AKHIR j AKHIR i UNTUK i= 1 KE 5 UNTUK j=1 KE 5 C(i,j) = 0 UNTUK k=1 KE 5 C(i,j) = C(i,j) + A(i,k) * B(k,j) AKHIR k AKHIR j AKHIR i UNTUK i= 1 KE 5 UNTUK j=1 KE 5 CETAK C(i,j) AKHIR j AKHIR i SELESAI